数据类型
本章将会额外用到的一些语句:
//控制台输出语句
print()
//类型判断语句
type(of: param)
1.常量与变量
和其他编程语言一样,变量代表的是一个可以更改的值,常量表示此参数不可更改。
在Swift中 常量与变量由关键字 let、var进行区分
//var 表示变量
var name:String = "Swift"
//let 表示常量
let sys:String = "ios"
我们还可以在一行内定义多个:
var python, java, c: String
2.基础数据类型与编码集
在上边的例子当中我们给定的两个都是String类型。
在Swift当中,除了String类型还有如下几种数据类型:
//定义一个为String类型的变量a , 特别注意!在swift中,字符串中的空格是有效的
var a:String = "hello world 啊 啊 啊"
var b:Int = 10
var c:Float = 1.2
var d:Double = 1.5
var e:Bool = false
//单个字符
var f:Character = "c"
//多行字符串,本质上也是字符串
var multilineString:String = """
__,
( o /) _/_
`. , , , , // /
(___)(_(_/_(_ //_ (__
/)
(/
"""
输出结果:
关于多行字符串的一部分扩展内容:
我这里就直接引入文档的描述:
一个多行字符串字面量包含了所有的在开启和关闭引号(""")中的行。这个字符从开启引号(""")之后的第一行开始,到关闭引号(""")之前为止。这就意味着字符串开启引号之后(""")或者结束引号(""")之前都没有换行符号。
一个多行字符串字面量能够缩进来匹配周围的代码。关闭引号(""")之前的空白字符串告诉 Swift 编译器其他各行多少空白字符串需要忽略。然而,如果你在某行的前面写的空白字符串超出了关闭引号(""")之前的空白字符串,则超出部分将被包含在多行字符串字面量中。
Switft中常量和变量名可以包含任何字符,包括 Unicode 字符:
var 参数1:String = "😂"
var 参数2:String = "🚢"
打印输出结果:
3.类型注解与类型推断
当你声明常量或者变量的时候可以加上类型注解(type annotation),说明常量或者变量中要存储的值的类型。如果要添加类型注解,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。
var a:String = "hello world 啊 啊 啊"
在前边的变量定义中,我们都是声明了参数的类型的,即显式声明。
一般来说你很少需要写类型注解。如果你在声明常量或者变量的时候赋了一个初始值,Swift 可以推断出这个常量或者变量的类型,这就是类型推断。
按照文档的话来说:
Swift 是一个类型安全(type safe)的语言。类型安全的语言可以让你清楚地知道代码要处理的值的类型。如果你的代码需要一个 String,你绝对不可能不小心传进去一个 Int。
由于 Swift 是类型安全的,所以它会在编译你的代码时进行类型检查(type checks),并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误。
这里可以参考:类型安全和类型推断
在代码中实现:
var 类型推断1 = "String"
var 类型推断2 = 666
var 类型推断3 = 1.6
print(type(of: 类型推断1))
print(type(of: 类型推断2))
print(type(of: 类型推断3))
输出判断出结果
扩展参照:Swift5.1基础部分