使用 let来声明一个常量,用 var来声明一个变量。常量的值在编译时并不要求已知,但是你必须为其赋值一次。这意味着你可以使用常量来给一个值命名,然后一次定义多次使用
var myVariable = 42 myVariable = 50 let myConstant = 42
常量或者变量必须拥有和你赋给它们的值相同的类型。不过,你并不需要总是显式地写出类型。在声明一个常量或者变量的时候直接给它们赋值就可以让编译器推断它们的类型。比如下面的栗子,编译器就会推断 myVariable是一个整型,因为它的初始值是一个整型。
如果初始值并不能提供足够的信息(或者根本没有提供初始值),就需要在变量的后边写出来了,用冒号分隔
let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Double = 70
在swift中,值永远不会隐式地转换为其他类型。如果你需要将一个值转换为不同的类型,需要使用对应的类型显示地声明
let label = "The width is" let width = 94 let widthLabel = label + String(width) print(widthLabel)
其实还有一种更简单的方法来把值加入字符串:将值写在圆括号里,然后再在圆括号的前边写一个反斜杠 ( ) ,举个栗子:
let apples = 3 let oranges = 5 let appleSummary = "I have (apples) apples." let fruitSummary = "I have (apples + oranges) pieces of fruit."
使用方括号( [])来创建数组或者字典,并且使用方括号来按照序号或者键访问它们的元素
var shoppingList = ["catfish", "water", "tulips", "blue paint"] shoppingList[1] = "bottle of water" var occupations = [ "Malcolm": "Captain", "Kaylee": "Mechanic", ] occupations["Jayne"] = "Public Relations"
使用初始化器语法来创建一个空的数组或者字典
let emptyArray = [String]()
let emptyDictionary = [String: Float]()
如果类型信息能被推断,那么你就可以用[]来表示空数组,用[:]来表示空字典。举个栗子,当你给变量设置新的值或者传参数给函数的时候
shoppingList = []
occupations = [:]
/*******基础语法*******/
一、变量和常量
01 变量和常量的定义
在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不能被修改。
变量:var
常量:let
格式:修饰符(var|let) 变量|常量名称:数据类型 = 值
注意:在使用swift开发过程中,一般情况下先使用let,只有该数据需要修改的时候再修改为var,可以保证数据安全性。
var number:Int = 10 //定义变量并初始化 number = 20 //变量的数值可以修改 let hNumber:Int = 20 //定义常量并初始化 hNumber = 20 //常量的数据不可以修改
02 类型推导
在swift中如果在变量|常量定义的时候进行初始化,那么数据类型可以省略不写,系统会自动推导出该变量|常量的数据类型。
建议:在开发中应该尽量使用自动推导(除非是需要明确指定数据长度或者是需要先定义后初始化),可以最大化的降低代码的冗余。
03 类型转换
在OC中有显示转换和隐式的类型转换,但在swift中没有隐式类型转换,只有相同类型的数据才能进行赋值或运算。
//赋值操作 let hnumber3:Int = Double(10.0) //不同数据类型的数据不允许赋值 //运算 let hnumber4 = 10 let hnumber5 = 88.8 let hnumber6 = Double(hnumber4) + hnumber5
二、元组
元组是一种复合的数据类型,只要将多个数据(可以是相同或不同数据类型的)使用一夜()括起来就称之为一个元组。
元组的优点在于,可以方便的实现函数返回多个值。
元组的定义格式:常量|变量修饰符 常量|变量的名称:(数据类型1,数据类型2,数据类型3)=(值1,值2,值3)
//定义并初始化元组 let person:(String,Int,Double) = ("hhggll",21,99.9) //提取元组的内容 person.0 person.1 person.2 //给元组的元素设置名称 let hPerson = (name:"hhggll",age:27,score:99.0) //提取元组的内容 hPerson.name hPerson.age hPerson.score //提取元组数据 let (name,age,score) = ("hhggll",21,99) name age score