Wil*_*niz 7 int int32 uint16 swift
我真的被卡住了!我不是ObjC的专家,现在我正在尝试使用Swift.我认为这会简单得多,但事实并非如此.我记得Craig说他们称Swift为"Objective-C without C",但OS X的基础中有太多的C类型.文件说许多ObjC类型会自动转换为Swift类型,可能是双向转换.我很好奇:C类型怎么样?
这是我被困的地方:
//array1:[String?], event.KeyCode.value:Int16
let s = array1[event.keyCode.value]; //return Int16 is not convertible to Int
Run Code Online (Sandbox Code Playgroud)
我在ObjC尝试了一些东西:
let index = (Int) event.keyCode.value; //Error
Run Code Online (Sandbox Code Playgroud)
要么
let index = (Int32) event.keyCode.value; //Error again, Swift seems doesn't support this syntax
Run Code Online (Sandbox Code Playgroud)
将Int16转换为Int的正确方法是什么?
Ant*_*nio 22
要将数字从一种类型转换为另一种类型,您必须创建一个新实例,将源值作为参数传递 - 例如:
let int16: Int16 = 20
let int: Int = Int(int16)
let int32: Int32 = Int32(int16)
Run Code Online (Sandbox Code Playgroud)
我使用显式类型进行变量声明,以使概念清晰 - 但在所有上述情况下,可以推断出类型:
let int16: Int16 = 20
let int = Int(int16)
let int32 = Int32(int16)
Run Code Online (Sandbox Code Playgroud)