Swift4.0 study1 语法

swift学习第一天 :语法
1.常量和变量

var 修饰变量 (可以修改)
let 修饰常量(不可变)
print代理oc中的NSLog输出

2.数据类型转换:Swift是强语言(OC是弱语言)故进行转换时必须指明数据类型,即Swift中不存在隐式类型转换,全部都是显示的

例子:

1.普通转换
let num1 = 10  //Int 类型
let num2 = 2.3 //Double 类型
let num = num1 + Int(num2) //必须转为统一类型才能进行运算,num为Int类型
print(num) //输出 12
2.强制类型转换
let num3:Int = Int(num2)
注意:Swift中数据类型首字符大写


3.分支

1.if
Swift 中的if的使用方式“基本上”和oc一致
(1).Swift中的if可以省略()
(2).Swift中即使if后面只有一条语句,也不能省略{}
(3).Swift中if的判断条件,只能放bool值,取值只有ture/false

 let num4 = 10
 if num4 == 10
 {
 print("1")
 }



在swift中三目运算符用的特别多

let num44 = (num4 == 10) ? 10:5
print(num44)



2.switch
Swift 中的switch
(1).后面的()可以省略
(2).oc中如果没有break会穿透,但是Swift中不会
(3).oc中如果要在case中定义变量,必须加上{},但是Swift中不用
(4).oc中的default的位置随便,但是Swift中的default只能放最后

let num5 = 2
switch num5 {
    case 1:
    break
    case 2:
    break
    default:
    break
}



3.for
普通for循环 和oc中基本一致
特色:
(1). 0..<10 代表一个区间范围 ,从0 - 9 ,包头不包尾
(2). 0…10 代表一个区间范围 ,从0 - 10 ,包头包尾

for var i in 0..<10 {
            print(i)
        }
for  i in 0...10 {
            print(i)
        }



(2). _ 代表忽略,如不关心某个参数,就可以使用_

for _ in 0..<10 {
           print("sch")
        }



4.while:开发中很少用,“基本”和oc用法一致

var num6 = 0
while num6 < 10 {
      print(num6)
      num6=num6+1
 }



5.do while:在Swift2.0之后用repeat while代替,do用作捕获异常

var num7 = 0
repeat{
    print(num7)
    num7=num7+1
}while num7 < 10



6.可选类型:Optional 代表着可有可无 即一个方法或数据类型后面有?,就代表着是一个可选类型


let url = NSURL(string:"https://www.baidu.com")
print(url)//输出:Optional(https://www.baidu.com)



注意:可选类型打印出来呗Optional包裹,如果不想被Optional包裹,加 !

 let url = NSURL(string:"https://www.baidu.com")
 print(url!)//输出:https://www.baidu.com



!代表告诉编译器 可选类型一定有值,可以强制解析;如果可选类型中没有值,又进行了强制解析,程序会崩溃
Swift的用意是想让我们将大部分运行时的错误,都在编译时解决,即从运行时转到了编译时
故为防止程序出现崩溃,我们应该做的更为严谨一点

let url = NSURL(string:"https://www.baidu.com")
if url != nil{
      print(url!)
}



鉴于上面这种方法,苹果官方也给出了更为严谨的方法:可选绑定

//urlFinal:是在url判断有值得情况下 将值取出来赋给urlFinal,故urlFinal一定有值
if let urlFinal = url {
      print(urlFinal)
}


7.数组:和oc的区别就是去掉前面的@符号

let dataList:NSArray = ["11","q"]


8.字典

(1).创建字典 用 []
[String:Any] 常见的类型

  let dict:[String:Any] = ["name":"sch","age":25]
  print(dict) 



(2).获取value

if let nameFinal = dict["name"] {
       print(nameFinal)
}



(3).遍历

//利用元祖类型遍历字典,会自动将字典中的key赋值给元祖中的第一个变量,将value估值给元祖中的第二个变量
for (key,value) in dict {
     print(key)
     print(value)
}



(3).新增key / value

var dict1:[String:Any] = ["name":"sch","age":25]
dict1["sex"] = "boy"
print(dict1)//输出:["name": "sch", "age": 25, "sex": "boy"]



(4).更新key / value
如果对应的key在字典有会更新,如果没有就新增

dict1["name"] = "you"
print(dict1)//输出:["name": "you", "age": 25, "sex": "boy"]



(5).删除

dict1.removeValue(forKey: "name")
print(dict1)//输出:["age": 25, "sex": "boy"]



(5).合并:就是遍历和新增/更新的集合

for (key,value) in dict {
    dict1[key] = value
}
    print(dict1)//输出:
["age": 25, "sex": "boy", "name": "sch"]

9.字符串

字符串string用””
oc中的字符串是一个对象,继承于NSObject
swift中的字符串是一个结构体,性能比oc中的高
(1) .拼接

var str = "123"
let str1 = "456"
str += str1
print(str)



(2).格式化

//方法一:
//目标:name=sch,age=25
//swift中可以使用\()来拼接其他值
var n = "sch"
let a = "25"
str = "name=\(n),age=\(a)"
print(str)//输出:name=sch,age=25


//方法二:
//所有的值必须放在arguments数组中,哪怕只有一个值
//09:02:23
str = String(format:"%02d:%02d:%02d",arguments:[9,2,23])
print(str)//输出:09:02:23



(3).截取:建议使用oc字符串的截取方法,应为swift的字符串截取太复杂
swift和oc中字符串可以和oc中的字符串非常非常方面进行转换

var str2:NSString = "sch is studing";
var str4 = str2.substring(with: NSMakeRange(0, 3))
print(str4)//输出:sch


10.函数

Swift函数的格式”
语义:将前面计算的结果返回给 -> 返回值
func 函数名(参数列表) -> 返回值
{
执行代码
}
(1).没有参数,没有返回值

//没有返回值写viod 
func sch() -> Void{
   print("sch")
}
//也可以简写用()代替viod
func sch1() -> (){
      print("sch1")
}
//或者直接省略 -> ()/-> Void
func sch2(){
      print("sch1")
}



(2).没有参数,有返回值

func sch3() -> String {
    return "sch3"
}



(3).有参数,没有返回值

func sch4(url:String,a:Int) {
      print("sch4")
}//调用:sum(a: 2, b: 3)
func sum(a:Int,b:Int) {
     print(a+b)
}//调用:sum(a: 2, b: 3)



(4).有参数,有返回值

func sum1(a: Int, b: Int) -> Int{
    return a+b
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值