首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift中函数调用中的隐式类型

问Swift中函数调用中的隐式类型
EN

Stack Overflow用户
提问于 2014-12-07 01:47:50
回答 2查看 143关注 0票数 0

我很喜欢斯威夫特,但我喜欢看我的隐性类型。如何在函数调用中执行这些操作?我尝试过所有这些方法:

代码语言:javascript
复制
print(String "Hello")
print(String: "Hello")
print([String] "Hello")
print([String "Hello"])
print([[String] "Hello"])

但似乎没有一种方法有效(它们都会把错误抛到预期的分隔线上)。有人知道怎么做吗?我在谷歌上搜索过,发现的不多。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-07 11:10:48

Swift是一种强类型语言,而且(桥接时除外)它不会在类型之间进行任何隐式转换(例如从Bool到Int,或者从Int16到Int)。所以实际上,您不需要告诉编译器字符串就是字符串。

但是,如果要将文字转换为另一种类型,如String转换为NSString,或将Int转换为UInt,只需使用as运算符:

代码语言:javascript
复制
print("nsstring" as NSString)
print(10 as UInt)

注意,只有当函数需要一个泛型参数或as /Any时,使用AnyObject运算符才有意义。如果一个函数需要UInt,并且您传递了一个显式的Int,它将不会编译:

代码语言:javascript
复制
func test(param: UInt) { print(param)}

test(10 as Int) // Error: Int is not convertible to UInt

但是,如果将Int文本传递给需要UInt的函数,类型推断将自动透明地执行转换:

代码语言:javascript
复制
test(10) // 10 is a Int literal, but it's implicitly converted to UInt
票数 1
EN

Stack Overflow用户

发布于 2014-12-07 07:15:12

使用

代码语言:javascript
复制
print(String("Hello"))

实际上,这将是将某些内容隐藏为字符串格式,但是没有其他方法来显示您想要看到的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27338676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档