Swift学习笔记(结合代码,实践Tips)---Day1

//================Demo1--Day1=================

/**

*1.常量变量

*/

varstr ="Hello, playground"

print(str)

varmyStr ="Hello,Word"

myStr="王云鹏,你好啊"

letyourStr ="你是常量啊"//常量不可以修改的

print(myStr)

/**

*2.类型推断

*/

varint1 =9

//int1 = 10.0这样的话会报错,因为之前已经判断int1是整型了

//赋值的时候直接给定类型变量后面声明类型,用冒号分割。

letint2:Int=9

//创建一个常量,显式指定类型为Float并指定初始值为4。

letpractiseNumber:Float=4

/**

*3.类型转换

*/

//值永远不会被隐式转换为其他类型。如果你需要把一个值转换成其他类型,请显式转换。

varlabel1 ="The width is"

varwidth=100

//var widthLabel1 = label1 + width这样会报错,因为两者类型不统一,可以转换下

//转换的方式和OC不一样。括号里面放的是被转换的变量,类型不加括号

varwidthLabel1 =label1+String(width)

//练习

varwidth2 =200

//width2 = 1.0现在是不支持float的转换下

varwidth3 =Float(width2)

//width3此时已经是float类型的了

letthree =3

letpointOneFourOneFiveNine =0.14159

letpi =three+Int(pointOneFourOneFiveNine)

//有一种更简单的把值转换成字符串的方法:把值写到括号中,并且在括号之前写一个反斜杠

varnum1 =12.00

varnum2 =13.00

varnum3:Int=Int(num1+num2)//这样写也是可以的,嘿嘿,多多尝试

//练习:使用\()来把一个浮点计算转换成字符串,并加上某人的名字,和他打个招呼。

print("你好,\(num1+num2)")

/**

*4.使用方括号[]来创建数组和字典,并使用下标或者键(key)来访问元素。

*/

//数组

vararr1 = ["a","b","c","d"]

varnumStr =arr1[2]

print(arr1)

//字典

vardic1 = ["我的名字":"王云鹏",

"你的名字":"毛艳艳"]

varvalueMe =dic1["我的名字"]

varvalueYou =dic1["你的名字"]

varoccupations = [

"Malcolm":"Captain",

"Kaylee":"Mechanic",

]

occupations["Jayne"] ="Public Relations"//这也算是一个键值对的赋值,类似于一个插入新的key-value的作用但是好像顺序不是按照后来的在后面的顺序,最后这个怎么在了中间??难道那个语法是起插入作用么??

print(occupations)

//要创建一个空数组或者字典,使用初始化语法。

vararr2 = []//这不也是创建一个空数组么??为什么要使用初始化语法呢?答案在下面

vartemptyArr1 = [String]()//初始化一个空的字符串数组

vartemptyArr2 = [Int]()//初始化一个空的整型数组

//初始化字典

letemptyDictionary = [String:Float]()

//如果类型信息可以被推断出来,你可以用[]和[:]来创建空数组和空字典——就像你声明变量或者给函数传参数的时候一样。

vararr3NoItem = []

vardic1NoItem = [:]

/**

*5.控制流使用if和switch来进行条件操作,使用for-in、for、while和do-while来进行循环。包裹条件和循环变量括号可以省略,但是语句体的大括号是必须的。

*/

vararr3 = [12,13,14,15,16]

arr3.insert(17, atIndex:arr3.count)//插入一个

varteamScore =0

//快速枚举forIn遍历

forscoreinarr3{

ifscore >13{

teamScore+=3

}else{

}

}

print(teamScore)

//在if语句中,条件必须是一个布尔表达式——这意味着像if score { ... }这样的代码将报错,而不会隐形地与0做对比。你可以一起使用if和let来处理值缺失的情况。有些变量的值是可选的。一个可选的值可能是一个具体的值或者是nil,表示值缺失。在类型后面加一个问号来标记这个变量的值是可选的。

//可选的,等于说是双份,不赋值的时候它就是个nil注意?一定要紧跟着类型,中间不要留空格,否则会报错

varoptionString1 :String? ="Hello"

print(optionString1=nil)

varoptionString2 :String?//这时候它就是个nil

//练习

varoptionName :String? ="王云鹏"

vargreeting ="hello"

ifletname =optionName{//这时候name有值了,表示条件为真啊

greeting="hello,\(greeting)"

}

//练习把optionalName改成nil,greeting会是什么?添加一个else语句,当optionalName是nil时给greeting赋一个不同的值。

varoptionName1 :String?

vargreeting1 ="hello"

ifletname1 =optionName1{//无值。缺省为Nil

greeting="hello,\(greeting1)"

}else{

greeting="hello,\(greeting1)"

}

//switch貌似OC里面的switch只能比较各整型好像swift里面的switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。

letvegetable ="red papper"

switchvegetable{

case"red":

print("匹配错误")

case"paper":

print("照样匹配错误")

case"red papper":

print("匹配正确")//匹配到的是这个

default:

print("匹配的乱七八糟")

}

//Tips:运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break。

//你可以使用for-in来遍历字典,需要两个变量来表示每个键值对。字典是一个无序的集合,所以他们的键和值以任意顺序迭代结束。

varfunStrings = ["key1":["我的","毛的"],"key2":["它的","她的","他的"],"key3":["你的","那个人的"]]

//快速枚举

for(key,content)infunStrings{

ifkey =="key1"{//判断两个字符串是否相等。直接这样等号判断对么??

print(content)

}elseifcontent.count==3{

print(key)

}

}

//使用while来重复运行一段代码直到不满足条件。循环条件可以在开头也可以在结尾。

varn =0

varsum =0

whilen<100{

n+=1

sum+=n

}

print(sum)

//for循环你可以在循环中使用..<来表示范围,也可以使用传统的写法,两者是等价的:

varn1 =0

forvari=0;i<5;++i{

n1+= i

}

print(n1)

varn2 =0

forqin0..<5{

n2+= q

}

print(n2)

/**

*函数和闭包使用func来声明一个函数,使用名字和参数来调用函数。使用->来指定函数返回值。

*无论是形参还是返回值,都是返回的变量名后面是冒号+类型

*/

//声明函数

funcgreet(name:String,content:String) ->String{

return"Hello,\(name+content)"

}

//调用

varreturnValue:String=greet("王云鹏","给您请安了")

print(returnValue)

//使用元组来让一个函数返回多个值。该元组的元素可以用名称或数字来表示。

//[Int]这样表示传进去实参是个数组,只不过是个整型的,字符串型的自己琢磨

funccalculateStatistics(scores:[Int]) ->(min:Int,max:Int,sum:Int){

varmin = scores[0]

varmax = scores[0]

varsum =0

forscoreinscores {

ifscore > max {

max = score

}elseifscore < min {

min = score

}

sum += score

}

return(min, max, sum)

}

varitems =calculateStatistics([12,13,45,9,10])

print(items.sum)

print(items.2)

//函数可以带有可变个数的参数,这些参数在函数内表现为数组的形式:

funcmaybeChange(values:Int...) ->Int{

varsum =0

forvalueinvalues{

sum += value

}

returnsum

}

maybeChange()

maybeChange(21,23,57)

//练习练习:写一个计算参数平均值的函数。

funcgetAverage(numbers:[Int]) ->Float{

varaverage =0

varsum =0

fornumberinnumbers{

sum += number

}

returnFloat(sum) /Float(numbers.count)

}

getAverage([1,2,3,4,5,6])

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容