在Swift中如何获取一个c 获取变量的类型型

函数类型(Function Types)
每个函数都有种特定的函数类型,由函数的参数类型和返回类型组成。
func addTwoInts(a: Int, b: Int) -& Int {
return a + b
func multiplyTwoInts(a: Int, b: Int) -& Int {
return a * b
这个例子中定义了两个简单的数学函数:addTwoInts&和&multiplyTwoInts。这两个函数都传入两个&Int&类型, 返回一个合适的Int值。
这两个函数的类型是&(Int, Int) -& Int,可以读作&这个函数类型,它有两个&Int&型的参数并返回一个&Int&型的值。&。
下面是另一个例子,一个没有参数,也没有返回值的函数:
func printHelloWorld() {
println(&hello, world&)
这个函数的类型是:() -& (),或者叫&没有参数,并返回&Void&类型的函数&。没有指定返回类型的函数总返回Void。在Swift中,Void&与空的元组是一样的。
使用函数类型(Using Function Types)
在 Swift 中,使用函数类型就像使用其他类型一样。例如,你可以定义一个类型为函数的常量或变量,并将函数赋值给它:
var mathFunction: (Int, Int) -& Int = addTwoInts
这个可以读作:
&定义一个叫做&mathFunction&的变量,类型是&一个有两个&Int&型的参数并返回一个&Int&型的值的函数&,并让这个新变量指向&addTwoInts&函数&。
addTwoInts&和&mathFunction&有同样的类型,所以这个赋值过程在 Swift 类型检查中是允许的。
现在,你可以用&mathFunction&来调用被赋值的函数了:
println(&Result: \(mathFunction(2, 3))&)
// prints &Result: 5&
有相同匹配类型的不同函数可以被赋值给同一个变量,就像非函数类型的变量一样:
mathFunction = multiplyTwoInts
println(&Result: \(mathFunction(2, 3))&)
// prints &Result: 6&
就像其他类型一样,当赋值一个函数给常量或变量时,你可以让 Swift 来推断其函数类型:
let anotherMathFunction = addTwoInts
// anotherMathFunction is inferred to be of type (Int, Int) -& Int
函数类型作为参数类型(Function Types as Parameter Types)
你可以用(Int, Int) -& Int这样的函数类型作为另一个函数的参数类型。这样你可以将函数的一部分实现交由给函数的调用者。
下面是另一个例子,正如上面的函数一样,同样是输出某种数学运算结果:
func printMathResult(mathFunction: (Int, Int) -& Int, a: Int, b: Int) {
println(&Result: \(mathFunction(a, b))&)
printMathResult(addTwoInts, 3, 5)
// prints &Result: 8&
这个例子定义了&printMathResult&函数,它有三个参数:第一个参数叫&mathFunction,类型是(Int, Int) -& Int,你可以传入任何这种类型的函数;第二个和第三个参数叫&a&和&b,它们的类型都是&Int,这两个值作为已给的函数的输入值。
当&printMathResult&被调用时,它被传入&addTwoInts&函数和整数3和5。它用传入3和5调用&addTwoInts,并输出结果:8。
printMathResult&函数的作用就是输出另一个合适类型的数学函数的调用结果。它不关心传入函数是如何实现的,它只关心这个传入的函数类型是正确的。这使得&printMathResult&可以以一种类型安全(type-safe)的方式来保证传入函数的调用是正确的。
函数类型作为返回类型(Function Type as Return Types)
你可以用函数类型作为另一个函数的返回类型。你需要做的是在返回箭头(-&)后写一个完整的函数类型。
下面的这个例子中定义了两个简单函数,分别是&stepForward&和stepBackward。stepForward&函数返回一个比输入值大一的值。stepBackward&函数返回一个比输入值小一的值。这两个函数的类型都是&(Int) -& Int:
func stepForward(input: Int) -& Int {
return input + 1
func stepBackward(input: Int) -& Int {
return input - 1
下面这个叫做&chooseStepFunction&的函数,它的返回类型是&(Int) -& Int&的函数。chooseStepFunction&根据布尔值&backwards&来返回&stepForward&函数或&stepBackward&函数:
func chooseStepFunction(backwards: Bool) -& (Int) -& Int {
return backwards ? stepBackward : stepForward
你现在可以用&chooseStepFunction&来获得一个函数,不管是那个方向:
var currentValue = 3
let moveNearerToZero = chooseStepFunction(currentValue & 0)
// moveNearerToZero now refers to the stepBackward() function
上面这个例子中计算出从&currentValue&逐渐接近到0是需要向正数走还是向负数走。currentValue&的初始值是3,这意味着&currentValue & 0&是真的(true),这将使得&chooseStepFunction&返回&stepBackward&函数。一个指向返回的函数的引用保存在了&moveNearerToZero&常量中。
现在,moveNearerToZero&指向了正确的函数,它可以被用来数到0:
println(&Counting to zero:&)
// Counting to zero:
while currentValue != 0 {
println(&\(currentValue)... &)
currentValue = moveNearerToZero(currentValue)
println(&zero!&)
易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 。
上一篇:下一篇:
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加3个群。
Java技术群:
(人数:2000,等级:LV5,免费:否)
MySQL/SQL群:
(人数:2000,等级:LV5,免费:否)
大数据开发群:
(人数:2000,等级:LV5,免费:否)
Python技术群:
(人数:2000,等级:LV5,免费:否)
人工智能深度学习:
(人数:2000,等级:LV5,免费:否)
测试工程师(新群):
(人数:1000,等级:LV1,免费:是)
前端技术群(新群):
(人数:1000,等级:LV1,免费:是)
C/C++技术(新群):
(人数:1000,等级:LV1,免费:是)
Node.js技术(新群):
(人数:1000,等级:LV1,免费:是)
PostgreSQL数据库(新群):
(人数:1000,等级:LV1,免费:否)
Linux技术:
(人数:2000,等级:LV5,免费:否)
PHP开发者:
(人数:2000,等级:LV5,免费:是)
Oracle数据库:
(人数:2000,等级:LV5,免费:是)
C#/ASP.Net开发者:
(人数:2000,等级:LV5,免费:是)
数据分析师:
(人数:1000,等级:LV1,免费:是)R语言,Matlab语言等技术iOS开发零基础--Swift篇:Swift中数据类型 - 上帝是个孩子 - 博客园
Swift类型的介绍
Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等等
先了解整型和浮点型
Int8 : 有符号8位整型
Int16 : 有符号16位整型
Int32 : 有符号32位整型
Int64 : 有符号64位整型
Int : 和平台相关(默认,相当于OC的NSInteger)
UInt8 : 无符号8位整型
UInt16 : 无符号16位整型
UInt32 : 无符号32位整型
UInt64 : 无符号64位整型
UInt : 和平台相关(常用,相当于OC的NSUInteger)(默认)
Float : 32位浮点型
Double : 64浮点型(默认)
Swift中的类型推导
Swift是强类型的语言
Swift中任何一个标识符都有明确的类型
如果定义一个标识符时有直接进行赋值,那么标识符后面的类型可以省略.
因为Swift有类型推导,会自动根据后面的赋值来决定前面的标识符的数据类型
可以通过option+鼠标左键来查看变量的数据类型&
Swift中基本运算
Swift中在进行基本运算时必须保证类型一致,否则会出错
相同类型之间才可以进行运算
因为Swift中没有隐式转换
数据类型的转化
Int类型转成Double类型:Double(标识符)
Double类型转成Int类型:Int(标识符)
let a = 10
let b = 3.14
阅读(...) 评论()主题 : swift声明变量时一定要指定类型?有没有OC那种id类型
级别: 新手上路
可可豆: 68 CB
威望: 68 点
在线时间: 193(时)
发自: Web Page
swift声明变量时一定要指定类型?有没有OC那种id类型&&&
swift声明变量时一定要指定类型?有没有OC那种id类型。某个参数是服务器返回的,有可能是string类型,也可能是int型,那我声明参数时该怎么写?如果这样写:var text:String = &&;然后在判断 ?if self.text is String {?} else {?}
级别: 新手上路
可可豆: 2 CB
威望: 2 点
在线时间: 20(时)
发自: Web Page
var text: Any?
级别: 新手上路
可可豆: 95 CB
威望: 95 点
在线时间: 157(时)
发自: Web Page
Any就是id&&不过用的时候要转换 用as
级别: 版主
UID: 533249
可可豆: 3387 CB
威望: 2295 点
在线时间: 540(时)
发自: Web Page
swift 中的 Any 相当于 OC中的id,&&声明时候可以 var text: Any?
https://github.com/YTiOSerhttps://www.jianshu.com/u/562ebc94345f
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 php 获取变量类型 的文章

 

随机推荐