美文网首页
Swift 基础语法

Swift 基础语法

作者: 孤独的木木 | 来源:发表于2017-04-07 11:33 被阅读0次

1.基本定义

//1. swift中如何导入框架import UIKit

//2.如何定义标识符

// swift中定义标识符必须告诉编译器是常量还是变量let声明常量、var声明变量

//按住option键+鼠标左键查看变量的类型

leta :Int=20//有些使用常量,(更加安全)

varb :Double=1.44

b=2.33

// 3.如果一行中只有一条语句,那么该语句结束后可以不加; ,如果一行中有多条语句,那么以;分割

//4.打印内容

print(a)

print(b)

//常量的使用注意

letm =10

//创建一个对象

varview :UIView=UIView()

//view = UIView()错误的写法

view.backgroundColor=UIColor.red

view.frame(forAlignmentRect: )

// Swift基本运算必须保证类型一致否则会报错因为Swift没有隐试转换

lettempM =Double(m)//强制类型转换

2.逻辑分支的使用

////增加guard

//// 1 . if else判断语句不在有非0/nil即真,判断语句必须有明确的真假Boll-- ture/false

//var i = 0

//  if i > 0  {

//   print("a > 0")

//  } else {

//    print("a < 0")

//  }

// 2 .三目运算符

//let m = 20

//let n = 10

//

//let result = m > n ? m : n

// guard的使用2.0以后才有的有guard必须有else它必须在函数中使用里面必须要加return或break关键字

letage =20

leta =18

funconline(age:Int) {

guardage >=18else{

print("回家找妈妈")

return

}

guarda>=18else{

print("qian")

return

}

print("liu")

}

online(age:age)

letsex =0

// 1. switch后面的()可以省略,case语句结束后,break可以省略

//switch sex {

//case 0:

//    print("nan")

//

//default:

//    print("nv")

//}

//基本用法的补充

// 1.如果系统某一个case中产生case穿透,可以在case结束后跟上fallthrough

// 2.cass后面可以判断多个条件

switchsex{

case0,1,2:

print("nan")

default:

print("nv")

}

// 3. switch还可以判断浮点型以及字符串

leta =3.14

varresult  =0

switcha{

case3.14:

print("P")

default:

print("M")

}

letm  =10

letn  =20

letstr ="+"

switchstr{

case"+":

result=m+n

case"-":

result=m-n

default:

print("非法操作")

}

//3.3 switch可以判断区间开区间0..<20 0~19闭区间0...20 0 ~20

letscore =88

switchscore{

case0..<60:

print("不及格")

case60..<70:

print("及格")

case70..<80:

print("中等")

case80...100:

print("优秀")

default:

print("不存咋")

}

3.循环的使用

// for in写法

foriin0..<10{

print(i)

}

// for in写法(特殊)如果标识符不需要使用,可以使用_来代替for i in 0...9、

//for i in 0...9 {

//    print("hello world")

//}

for_in0...9{

print("hello world")

}

//2.while循环使用

vara =10

whilea>0{

print(a)

a-=1

}

//do while 用repeat 代替

repeat{

a+=1

print(a)

}whilea<10

1.字符串的使用

// 1.定义字符串

letstr ="Hello World"

//2.遍历字符串

forcinstr.characters{

print(c)

}

//3.字符串的拼接

letname  ="liumu"

letname1 ="LM"

letname2 =name+name1

//3.1字符串和其他标识符之间的拼接

letage =18

letheight =1.88

letinfo ="my name is\(name),my age is\(age),my height is\(height)"

//3.3拼接字符串时,字符串的格式化

letmin =2

letsecond =8

lettimeString =String(format:"%02d:%02d",arguments: [min,second])

//4.字符串的截取

leturlString ="www.520lm.com"

//先将它转换成NSString类型(urlString as NSString)

letheaser = (urlStringasNSString).substring(to:3)

2.数组的使用

//1.定义数组

//1.1定义不可变数组,使用let来定义,

letarray = ["mu","huan","ming","gggg"]

//1.2定义可变数组,使用var来定义,

vararrayM =Array()//创建可变数组

vararrayM1 = [String]()//创建可变数组

//2.对可变数组操作

//增加

arrayM.append("ggg")

arrayM.append("kkk")

arrayM.append("jjj")

arrayM.append("ggg")

arrayM.append("kkk")

arrayM.append("jjj")

arrayM.append("ggg")

arrayM.append("kkk")

arrayM.append("jjj")

//删除

arrayM.remove(at:0)

//修改

arrayM[0] ="hjk"

//取出

arrayM[0]

//3.数组遍历

foriin0..

print(arrayM[i])

}

fornameinarrayM{

print(name)

}

//遍历前两个元素

fornameinarrayM[0..<2] {

print(name)

}

//4.数组合并

letresultArr =array+arrayM//相同类型才能够相加合并

//5.数组排序

arrayM.sort()//升序

3.字典的使用

//1.定义字典

//1.1定义不可变字典,使用let来定义,

letdict:[String:Any] = ["name":"liumu","age":"20","height":5]

//1.2定义可变字典,使用var来定义,

//var dictM = Dictionary()

vardictM = [String:AnyObject]()//初始化可变数组

vardictMr  = [String:AnyObject]()

//2.对可变字典的操作

dictM["name"] ="liumu"asAnyObject?

dictM["sex"] ="nan"asAnyObject?

dictM.removeValue(forKey:“name")

dictM["name"] ="lm"asAnyObject?

dictM["sex"]

//3.遍历字典

forkeyindictM.keys{

print(key)

}

forvalueindictM.values{

print(value)

}

for(key,value)indictM{

print(key ,"=",value)

}

//4.合并字典

//即使类型一致也不能相加合并

for(key,value)indict{

dictM[key] = valueasAnyObject?

}

字典转换为数组

你可以提取字典的键值(key-value)对,并转换为独立的数组。实例如下:

varsomeDict:[Int:String]=[1:"One",2:"Two",3:"Three"]letdictKeys=[Int](someDict.keys)letdictValues=[String](someDict.values)print("输出字典的键(key)")for(key)indictKeys{print("\(key)")}print("输出字典的值(value)")for(value)indictValues{print("\(value)")}

isEmpty 属性

Y我们可以通过只读属性isEmpty来判断字典是否为空,返回布尔值:

importCocoavarsomeDict1:[Int:String]=[1:"One",2:"Two",3:"Three"]varsomeDict2:[Int:String]=[4:"Four",5:"Five"]varsomeDict3:[Int:String]=[Int:String]()print("someDict1 = \(someDict1.isEmpty)")print("someDict2 = \(someDict2.isEmpty)")print("someDict3 = \(someDict3.isEmpty)")

以上程序执行输出结果为:

someDict1=falsesomeDict2=falsesomeDict3=true

4.元组的使用

//元组的定义(元组一般作为方法等返回值)

letarray:[Any] = ["why",28,1.88]

letinfo = ("why",18,1.88)

info.0//可以给元组的元素取别名

letinfo1 = (name:"why",age:18,height:1.88)

info1.name

//元素的别名就是元组的名称

let(name,age,height) = ("lll",14,1.88)

5.可选类型的使用

//Swift中规定,对象中的任何属性在创建对象时,都必须有明确的初始值

//1.可选类型的定义

//1.1常规方式(不常用)

//var name : Optional = nil

//1.2语法糖

varname :String? =nil//可选类型

// 2.给可选类型赋值

name="liumu"

// 3.取出可选类型的值

print(name!)//强制解包

//4.注意:强制解包是非常危险的动作,如果可选类型为nil,系统会蹦掉,建议先判断可选类型的值

ifname!=nil{

print(name!)

}

//5.可选绑定

//1.判断name是否有值,如果没有值,直接不执行{}

//2.如果name有值,系统会自动将name解包,并且把解包后的结果复值给tempName

//写法一(不常用)

iflettempName =name{

print(tempName)

}

//写法二(不常用)

ifletname =name{

print(name)

}

//4.可选类型的应用场景

// 4.1通过字符串创建一个NSURL对象

leturl:URL? =URL(string:"http://www.520.com")

ifleturl =url{

letrequest =NSURLRequest(url: url)

}

5.函数的定义

//func函数名(参数)->返回值(如果没有返回值Viod V大写){代码块return返回值}

// 1.没有参数没有返回值

funcabout() ->Void{

print("iphoe7")

}

about()

funcabout1() {

print("iphoe7")

}

// 2.没有参数有返回值

funcreadMeassage() ->String{

return"吃饭了吗"

}

readMeassage()

// 3.有参数没有返回值

funccallPhone(phoneName:String) {

//    print("打电话给"+phoneName)

print("打电话给\(phoneName)")

}

callPhone(phoneName:"123456")

// 4.有参数有返回值

funcsum(num1 :Int,num2 :Int) ->Int{

returnnum1 + num2

}

sum(num1:12, num2:24)


5.1函数的使用注意

//注意一:内部参数,和外部参数

// 内部参数:在函数内部可以看到的参数就是内部参数,默认情况下所有的参数都是内部参数

// 外部参数:在函数外部可以看到的参数名称就是外部参数,3.0之前默认从第二个参数开始即是内部参数也是外部参数,3.0后 从第一个开始即是内部参数也是外部参数

// 注意二:swift中默认参数

func makeCoffee(coffName:String = "雀巢") -> String {

return"制作了一杯 \(coffName)咖啡"

}

makeCoffee(coffName: "猫屎")

makeCoffee()

//注意三 :可变参数

func sum(num : Int...) -> Int {

var  result = 0

for n in num {

result += n     //Swift3.0  以后取消了 ++,-- 语法

}

return result

}

sum(num: 2,3,4,5,6)

//注意四:指针类型

//注意五:函数的嵌套使用

func test () {

func demo() {

print("demo")

}

print("----")

demo()

}

test()

相关文章

  • swift 基础语法

    swift 基础语法

  • swift学习笔记

    一. swift语法基础 The Swift Programming Language中文版_The Swift ...

  • Swift5 基础教程与进阶合集

    Swift5 基础 Swift5 基础(一)Swift编译流程、基础语法、流程控制、函数、枚举[https://w...

  • Swift基础语法(二)

    swift基础语法(一)swift基础语法二主要讲数据类型 1.字符串 1.在swift中String是一个结构体...

  • Swift系统视频学习

    1、swift5.1基础语法:https://docs.swift.org/swift-book/Language...

  • Swift5.1——前言

    主要是针对Swift5.1,基础语法,和内部剖析。 基础语法 基础语法 流程控制 函数 枚举 可选项 为什么选择S...

  • Swift 枚举(enum)详解

    Swift基础语法总结,来自苹果官方文档: 枚举(Enumeration) 枚举在Swift中是 first-cl...

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

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

  • Swift 语法基础

    Swift 基础## 目录 控制流的代码优化 字符串代码注意 swift 的数组 字典和集合 函数

  • Swift基础语法

    Swift基础语法 一.变量和常量 1.定义 let 定义常量,一经赋值不允许再修改 var 定义变量,赋值之后仍...

网友评论

      本文标题:Swift 基础语法

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