Swfit入门学习笔记一:数据类型

1.变量、常量

如很多语言一样,变量可以改变他的值(可多次修改),常量只能有一次定义(不可修改)

swfit通过var来定义变量(variable),通过let定义常量

并且swfit有一个很好用的地方(对于自己写多了java来说,感觉有点奇怪的用法)。他可以不明确声明类型,赋值时编译器会自动类型推断,意思我们如果一开始就对变量赋值,就可以不声明变量的类型了,例如:

var myVariable = 2.0
let myConstant = "这是一个字符串常量"

即使我们没有对两个量定义类型,他也可以自动判断类型,但是,如果我们最初没有对其进行赋值,肯定是需要设置类型的,Swfit也没有高级到那种程度,定义常、变量方法如下:

var myVariable: Double
let myConstant: String

在上面我们没有对常量赋值

数据类型跟其他语言一样,在这就不多赘述了。

一个值不能隐式转换为其他类型,如果把一个值转换成其他类型,需要显式转换。例如:

var num = 15
var str = "this num is "
//str += num            是错误的
str += String(num)
print(str)

可以使用字符串插值符号     \()       ,字符串插值是一种全新的构建字符串的方式,可以在其中包含常量、变量、字面量和表达式 ,例如:

let apple = 3
let oranges = 4
let str = "I have \(apple + oranges) fruit."
let str1 = "I have \(2.0 + Double(3)) fruit."

2.数组

与其他语言一样,数组也是差不多的,当然,根据Swfit自动判断变量的方法,我们可以在定义是赋值,自动检测(前提:我们赋值必须是同一类型,可以是自定义数据类型)。

使用方括号[]来创建数组,并使用下标来访问元素,元素下标从 0 开始,例如:

let emptyArray = [String]()        //创建一个空数组
let emptyArray1 = []                //通过传入的第一个数进行判断的空数组
var name = ["zhao","qian","sun","li","zhou"]      //自我判断数据类型的数组  
print(name)                        
//通过数组名遍历数组,输出为:["zhao","qian","sun","li","zhou"]
for var str: String in name {
    print(str)
}
//通过遍历访问数组,输出为:zhaoqiansunlizhou
name[1] = "wu"        //改变数组第二个元素,wu->qian

3.字典

字典通过键值(key:varlue)对的方式对数据进行存储,并且通过哈希函数的形式,保证了每个值得不同(实际上是键的不同,这与java中的set有点类似)

使用[:]的形式来创建字典,并使用键(key)来访问元素,例如:

var occupations = ["Malcolm": "Captain","Kaylee": "Mechanic"]        //自动检查数据类型
var occupations1: [String : Int]                //确定数据类型的空字典
var occupations2 = [:]                        //不确定数据类型的空字典
var occupations3 = [String : Int]()            //确定数据类型的空字典
occupations["Jayne"] = "Public Relations"        //新建一个元素

4.元组

元组这个概念还是第一次接触到,因此都是各方百度,整理出零零散散的内容:

(1) 元组是多个值组合而成的复合值,用  (  )   表示,例如:

var Tuple: (Int,String,Int,Double) = (23,"liu",2018,1.80)

(2) 元组只能修改,不能添加和删除

(3) 元组当中可以存放元组,也可以存放键值对,可以通过对下标,或者键的方式访问元组中的元素,下标从0开始,例如:

var tuple = (23,"liu",2.0,A:2018)
print(tuple.0)            //通过下标访问,打印结果:23
print(tuple.A)            //通过键访问,打印结果:2018

(4) 当函数需要返回多个值的时候,可以通过元组返回,例如:

func maxminScores ( scores:[Int] ) -> (maxscore:Int, minscore:Int) { //传入数组,返回元组
    var curmax = scores[0], curmin = scores[0] 
    for score in scores[1..<scores.count] { 
    curmax = max(curmax, score) 
    curmin = min(curmin, score) 
    }
    return (curmax, curmin)             //返回一个元组
}

(5) 元组中可以存放Any值,意思是可以存放任意值,也可以存放自定义模型(例如自定义类)

(6) 对元组中的元素可以做选择性的过滤,使用下划线表示忽略,例如:

var tuple = (22,"liu",A:2333,B:2.0)        //一共四个元素
let (A,_,B,_) = tuple                       //下划线忽略两个元素,分别为"liu",B:2.0
print(A,B)                                //打印结果:22 2333

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值