美文网首页
学习 Swift (基础)

学习 Swift (基础)

作者: Coffee丶 | 来源:发表于2016-07-24 17:20 被阅读9次

importUIKit

/*

输出

OC:NSLog(@"Hello, World!");

Swift:print("Hello, World!")

*/

print("Hello, World!")

//常量&变量的使用原则:尽量先用let,只有需要变的时候,再用var,能够更加安全

//定义变量

vari =10

print(i)

i=15

print(i)

//定义常量

letj =20

//常量一经定义不能自改数值

//j = 25

print(j)

/******************************************************/

//变量类型

letnum =10

print(num)

//自动类型推导NSArray *arr = [NSMutalbeArray array];

letvalue =10.10

print(value)

//指定类型

letdValue:Double=10.1

print(dValue)

/*

在Swift中值"永远不会"被隐式转换为其他类型,必须显示转换

Swift中整数默认是Int64== long

Swift中小数默认是Double

*/

letsum =Double(num) +value

print(sum)

letsize =CGSize(width:10, height:10)

// Double和CGFloat也需要转换

letres =size.width+CGFloat(dValue)

/******************************************************/

/*

创建对象

OC:alloc initWithXXX方法

Swift:(xxx:)

调用方法

OC:[UIColor redColor];

SwiftUIColor.redColor()

枚举

OC:UIButtonTypeContactAdd

Swift:UIButtonType.ContactAdd

*/

letview =UIView(frame:CGRectMake(0,0,100,100))

view.backgroundColor=UIColor.redColor()

letbtn =UIButton(type:UIButtonType.ContactAdd)

btn.center=CGPoint(x:50, y:50)

view.addSubview(btn)

/******************************************************/

/*

1.条件不需要加圆括号

2.{}不能省略

*/

letintValue =10

ifintValue>5{

print("OK")

}

/*

1.Swift中没有C和OC中非零即真的概念

2.Swfit中逻辑值只有两个true/false

*/

ifintValue==10{

print(intValue)

}

/*

三目运算符和OC中的一样

提示: Swift中三目运算符用得很多

*/

letresult =intValue>20?20:10

/******************************************************/

/*

可选类型(Optional) ?

>表示变量可以有值,也可以没有值

>convenience init?构造函数, ?表示不一定能够实例化出对象

>!表示告诉编译器一定有值,编译能够通过,如果运行时没有值就会直接崩溃

>提示: ?和!是所有刚刚接触Swift的OC程序员最蛋疼的问题,前期开发要注意多看文档和利用编译器提示解决

*/

leturl =NSURL(string:"http://www.baidu.com/")

leturl2 =NSURL(string:"http://www.baidu.com/mike")

//需要考虑url是否有值

ifurl!=nil{

letrequest =NSURLRequest(URL:url!)

}

//不需要考虑url是否有值,能进入{}一定有值

ifleturl3 =NSURL(string:"http://www.baidu.com/"){

letrequest =NSURLRequest(URL: url3)

}

/******************************************************/

/*

传统写法:

>不需要()

>i没有类型,使用的是var

*/

forvari =0; i <10; i++

{

print(i)

}

/*

Swift

> 0~9之间,其中0..<中间不能有空格

> Swift1.0版本0..10

*/

foriin0..<10

{

print(i)

}

// 0~10

foriin0...10

{

print(i)

}

//不关心下标可以使用_省略

//在Swift中_使用非常广泛

for_in0...10

{

print("Coffee")

}

// while循环

varn =0

whilen<10

{

print(n)

n++

}

// do while

varm =0

repeat{

print(m)

m++

}whilem<10

/******************************************************/

//定义数组

letarray = ["Coffee","Mike"]

//遍历

forarrinarray{

print(arr)

}

//获取元素

array[0]

array[1]

//添加元素

//不能像不可变数组中添加内容

//array.append("why")

// let不可变对象, var可变对象

vararrayM = ["Coffee","Mike"]

arrayM.append("why")

//在Swift开发中数组可以存放任意类型

vararrayM2 = ["Coffee","Mike",123]

arrayM2.append("456")

//合并数组

vararrayM3 = ["zs","ls","ww","zl"]

arrayM+=arrayM3

//只有相同类型的数组才可以合并

//arrayM2 += arrayM3

//删除

arrayM3.removeAtIndex(1)

arrayM3

//删除所有

//arrayM3.removeAll()

//删除并保留容量

arrayM3.removeAll(keepCapacity:true)

arrayM3.capacity

arrayM3.append("1")

arrayM3.capacity

arrayM3.append("2")

arrayM3.capacity

arrayM3.append("3")

arrayM3.capacity

arrayM3.append("4")

arrayM3.capacity

arrayM3.append("5")

//超过容量,容量会直接*2

arrayM3.capacity

//初始化

vararrayM4: [String]

arrayM4= [String]()

//数组没有初始化之前不允许做任何操作

arrayM4.append("Coffee")

/******************************************************/

//定义字典

//最常见的字典类型[String : NSObject],例如JSON

vardict = ["name":"Coffee","age":30]

//遍历字典

// k,v可以随便写,前面是key后面是value

for(k, v)indict{

print(k)

print(v)

}

//获取元素

dict["name"]

//添加元素

//如果key不存在会新增

dict["gender"] ="man"

dict

//替换元素

//如果key存在会替换

dict["name"] ="why"

//删除元素

dict.removeValueForKey("name")

dict

//合并字典

vardict2 = ["score":123]

for(k, v)indict2{

dict[k] = v

}

dict

//初始化

vardict3: [String:NSObject]

dict3= [String:NSObject]()

dict3["name"] ="Coffee"

dict3

/******************************************************/

/*

Swift中使用String是一个结构体,效率更高,支持遍历

OC中是一个对象

Swift中的String和OC中的NSString可以很方便的进行转换

*/

varstr ="你很帅"

forcinstr.characters

{

print(c)

}

//字符串拼接

varstr2 ="cool"

str2+=str

letage =30

letname ="Coffee"

letstr3 ="name =\(name), age =\(age)"

letfrmStr =String(format:"%02d:%02d:%02d", arguments: [9,23,8])

//字符串截取,建议使用NSString

letstr4 ="xmgcool"

letnsStr:NSString=str4

letsubStr =nsStr.substringWithRange(NSMakeRange(0,3))

letnsStr2 =str4asNSString

letsubStr2 =nsStr.substringWithRange(NSMakeRange(1,3))

/******************************************************/

/*

格式:

func函数名称(参数列表) ->返回值

语义:将前面的计算结果,输出给后面的返回值

*/

//没有参数没有返回值

/*

1.可以写为->Void

2.可以写为->()

3.可以省略

*/

funcsay() ->Void{

print("Coffee")

}

say()

funcsay2() -> (){

print("Coffee")

}

say2()

funcsay3(){

print("Coffee")

}

say3()

//有参数没有返回值

funcsum(a:Int, b:Int){

print(a + b)

}

sum(10, b:20)

funcsumm(a:Int,_b:Int){

print(a + b)

}

summ(10,20)

// xy外部参数, ab内部参数

// Swift2.0以前可以写#

funcsum2(x a:Int, y b:Int){

print(a + b)

}

sum2(x:10, y:20)

//没有参数有返回值

funcgetNumer() ->Int{

return998

}

print(getNumer())

//有参数有返回值

funcsum3(a:Int, b:Int) ->Int{

returna + b

}

print(sum3(10, b:20))

/******************************************************/

相关文章

  • Swift5.x-基本的操作(中文文档)

    引言 继续学习Swift文档,从上一章节:基础,我们学习了Swift基础,现在,我们学习Swift的基本操作。这一...

  • 学习Swift

    LearnSwiftEasily 用心记录自己学习Swift的心得体会,让学习变得简单与快乐! Swift基础语法...

  • Swift 4.0 基础学习总结(二)

    在 Swift 4.0 基础学习总结(一)中,我们学习的Swift中的基本数据类型以及控制流,Swift简介的语法...

  • 使用Swift编程语言开发iOS应用(一)

    1. 在开发iOS应用之前需要学习一些Swift语言基础,在Swift Playground上练习Swift语法是...

  • Hello World

    当前篇:Hello World下一篇:造物之初 欢迎来到Swift基础教学,我将带领你从零基础开始学习Swift语...

  • Swift 语言基础

    Swift 语言基础 Swift语言介绍 Swift基础部分 第一个Swift程序 Swift没有main函数,第...

  • Swift语言的学习

    https://github.com/Yasinll/Swift-basicDemoswift0基础学习神器

  • swift 学习 基础

    一、变量与常量 1.当给一个变量或者常量赋值之后,自动赋予他的数据类型; 2.变量改变值不能改变他的数据类型;(T...

  • Swift基础学习

    今天回头要改,不着重点,有点太基础 iOS 老菜鸟开始Swift学习关于集合类弄数据的初妈化 数组,集合,字典内的...

  • Swift基础学习①

    SWift介绍 SWift初体验 常量&变量 创建对象补充 数据类型 逻辑分支 循环的介绍

网友评论

      本文标题:学习 Swift (基础)

      本文链接:https://www.haomeiwen.com/subject/wouodttx.html