Swift初級(一),課堂代碼

// ?main.swift

// ?Swift初級(一)

// ?Created by ?on 15/11/2.

// ?Copyright ? 2015年 ?All rights reserved.

//當(dāng)需要導(dǎo)入類庫的時(shí)候,使用import 類庫名,不用再加<>或者""

//

import Foundation

print("Hello, World!")//在swift中,使用print輸出

//1.定義常量(let)和變量(var)

//定義常量

let myGender = "男"http://commond+ctrl+空格可添加表情

//myGender = "女" ?//因?yàn)閙yGender是用let修飾的

//定義變量

var carName = "BMW"

carName = "Audi" ?//因?yàn)閏arName是用var修飾的

//Swift定義變量或者常量的時(shí)候,需要標(biāo)識出變量或者常量的類型,如果不標(biāo)識,會(huì)根據(jù)初始值自動(dòng)的推斷。

let name = "Jack" ?//會(huì)自動(dòng)推斷為String,由后面的值來決定name的類型

//let name:String = "Jack"http://由前面的類型String,決定后面賦什么類型的值.即后面值的類型要和String一致

let age:Int = 3 ?//注意:如果是使用let修飾,必須賦初值;如果是使用var修飾,可以不賦初值

var age1:Int? //'?'表示當(dāng)前age1是可選類型,其值可以為空

print(age1)

//定義一個(gè)字符類型的變量

var char:Character = "A" //此時(shí)char就是一個(gè)字符,切記其值也是用""的,只能放一個(gè)字符

//定義一個(gè)Bool類型的變量(值只有true,flase)

var flag:Bool = true

/***** 字符串String******/

//(1).創(chuàng)建一個(gè)空串變量

var str_empty = ""

var str1_empty = String()

//(2).通過字符串對象的isEmpty方法判斷是否為空

if str_empty.isEmpty{ ?

//if 后面的判斷條件(表達(dá)式,方法..)的返回值,必須是Bool類型的 ? ?

print("str_empty is empty!!")

}

//(3).拼接字符串

var str_url = "http://"var

str = "www.lanou3g.com"

let urlString = str_url+strprint(urlString)

print("藍(lán)鷗官網(wǎng):\\(urlString)\\n")//插入式取值 \\(變量名)

//(4).獲取字符串長度

var str1:String = "abc"

print(str1.characters.count)

//(5).字符串插值

let mul = 4

let content = "\\(mul)*2.5 = \\(Float(mul)*2.5)"

print(content)

//(6).字符串比較

let str2 = "xiaoxiao"

let str3 = "lanou"

if str2 != str3{ ?// == ? ?

print("兩個(gè)字符串不相等!!!")

}

/***********數(shù)組(Array)********/

//Swift的數(shù)組里面存儲的所有數(shù)據(jù) 都必須是同一類型的。如果需要使用不同類型的,可以使用OC的數(shù)組

//定義一個(gè)數(shù)組變量

var nameArray = ["張三","李四","王五"]

var nameArray1:Array= ["張三","李四","王五"

]let array = Array() ?//定義一個(gè)字符串型空數(shù)組

var int_arr = [Int]() //定義一個(gè)整型空數(shù)組

//訪問數(shù)組中某個(gè)元素

print("第二個(gè)元素\\(nameArray[1])")

print(nameArray[0])

//向數(shù)組中添加一個(gè)元素

var int_arr1 = [Int]()int_arr1.append(10)int_arr1.append(20)

// 使用運(yùn)算符重載向數(shù)組中添加一個(gè)元素

int_arr += [1]// 使用運(yùn)算符重載向數(shù)組中添加多個(gè)元素

int_arr += [1, 2, 3]print(int_arr1)//在數(shù)組中的某個(gè)位置,插入一個(gè)元素

int_arr1.insert(30, atIndex: 0)print(int_arr1)//移除數(shù)組中某個(gè)位置上的元素

int_arr1.removeAtIndex(2)print(int_arr1)//移除數(shù)組中所有元素

int_arr1.removeAll()print(int_arr1)

/***********字典(Dictionary)*******/

//定義一個(gè)字典變量var dictionary:Dictionary= ["a":10,"b":20]//定義個(gè)空字典變量var dictionary1:Dictionary= [:]var dictionary2 = Dictionary()

//向字典中添加一個(gè)鍵值對

dictionary["c"] = 30

print(dictionary)

//修改字典中某個(gè)鍵值對的值

dictionary["a"] = 50

print(dictionary["a"])

//刪除字典中的一個(gè)鍵值對

dictionary.removeValueForKey("a")

print(dictionary)

/***************元組*****************/

//定義一個(gè)元組變量

//方法一:直接初始化一個(gè)元組,通過隱式類型推斷確定每一個(gè)元素的類型

let status = ("藍(lán)鷗1班",["iOS","Html5"])

//方法二:顯示的標(biāo)識出元素的類型

let statusNews:(String, Array) = ("藍(lán)鷗1班",["iOS","Html5"])

//取出元祖中的值的方法:

//方法一:直接賦值給常量,并通過使用標(biāo)記名來獲取對應(yīng)的值

let statu:(classroom:String,course:Array) = status

var classInfo = statu.classroom + statu.course[0] + statu.course[1]

print(classInfo)

//方法二:直接通過下標(biāo)獲取元素的值

var classInfos = statu.0 + statu.1[0] + statu.1[1]

print(classInfos)

print(classInfos)

status

/*************循環(huán)********/

//extension

//第一種形式:

for var i = 1; i<10;i++

{

print(i)

}

//第二種形式:

for number in 1..<10{

print(number)

}

//第三種形式:

for number in 1...10{

print(number)

}

//while,repeat...while

var i = 5

while i > 0{

i--

print(i)

}

repeat{ ? ? ? //先執(zhí)行循環(huán)體,再判斷條件

print("repeat...while")

}while 1<0

//使用for循環(huán)遍歷數(shù)組

var animalsArray = ["dog","cat","tiger","pig"]

for a in animalsArray

{

print(a)

}

//使用for循環(huán)遍歷字典

var animalsArray1 = ["dog":"","pig":""]

for (key,value) in animalsArray1{

print("key = \\(key),value = \\(value)")

}

/********分支結(jié)構(gòu)(if...else,switch...case)******/

//if結(jié)構(gòu)

let flag1 = true

if flag1 == true

{

print("flag=\\(flag1)")

}else{

print("flag=\\(flag1)")

}

//switch...case

//特點(diǎn)1: switch中實(shí)現(xiàn)貫穿,使用關(guān)鍵字fallthrough

let value = 0

switch value{

case 0:

print("0")

fallthrough

case 10:

print("10")

fallthrough

default:

print("Other")

}

//特點(diǎn)②: case后面可以是一個(gè)范圍

switch value{

case 0..<10:

print("范圍是在0..<10,不包括10")

case 10...100:

print("范圍是在10...100,包括100")

default :

print("Other")

}

//特點(diǎn)③: case后面可以定義一個(gè)變量(let,var修飾都可以),where后面是定義這個(gè)變量需要滿足的條件

switch value {

case var i where value>=0 && value<10:

i = 20

print(i)

default:

print("Other")

}

//特點(diǎn)4: switch...case可以匹配一個(gè)元組

let point = (10,10)

switch point{

case (_,10): ? ? ? // '_'代表忽略

print("case1") //默認(rèn)帶有break

case (10,0):

print("case2")

case (10,10):

print("case3")

default:

print("Other")

}

/*********枚舉(enum)**********/

//原始類型是Int型的枚舉

enum Direction:Int

{

case east = 0

case south = 1

case north = 2

case west ?= 3

}

print(Direction.east.rawValue) //rawValue打印原始值

//原始類型是String型的枚舉

enum Season:String{

case spring = "春天"

case summer = "夏天"

case winter = "冬天"

}

print(Season.summer.rawValue)

//Direction(rawValue:2)表示:通過原始值2,獲取一個(gè)枚舉成員,這個(gè)成員的類型是Direction

//dir 類型為 Direction? 值為 Direction.north

let dir = Direction(rawValue: 2) //表示取的是原始值為2那個(gè)別名(north)

dir?.rawValue

print(dir)

print(Direction.south.rawValue)

/*********函數(shù)********/

//表示函數(shù)的關(guān)鍵字 func

//函數(shù)的類型分為:四種

//1.無返回值 無參

func function1() -> Void{

print("無返回值,無參")

}

function1()

//2.無返回值 有參

func function2(name str:String) ->Void{

print(str)

}

//function2("藍(lán)鷗")

function2(name: "藍(lán)鷗")

//3.有返回值無參

func function3() -> String{

return "Hello"

}

let string = function3()

print(string)

//4.有返回值有參

func function4(a:Int ,b:Int) ->Int

{

return a+b

}

let result = function4(3, b: 4)

print(result)

//5.函數(shù)的返回值為元組類型(利用元組實(shí)現(xiàn)函數(shù)返回多個(gè)值)

func sumMulMinus(number1:Int,_ number2:Int) ->(Int,Int,Int){

return(number1 + number2,number1 * number2,number1 - number2)

}

//

//sumMulMinus(5, number2: 2)

sumMulMinus(5, 2)

//內(nèi)部參數(shù)和外部參數(shù)

//內(nèi)部參數(shù)名:在函數(shù)內(nèi)部使用的參數(shù)名稱

//外部參數(shù)名:在函數(shù)調(diào)用時(shí)候,顯示的參數(shù)名稱

//默認(rèn)情況下,函數(shù)的第一個(gè)參數(shù),不顯示外部參數(shù)名,其余參數(shù),顯示外部參數(shù)名,并且和內(nèi)部參數(shù)名一致

func ?text(first one: Int,second two: Int){

print(one, two)

}

text(first: 10, second: 10)

//如果不想要顯示外部參數(shù)名,使用“_”忽略掉

func text1(one : Int, _ two : Int) {

print(one, two)

}

text1(10, 20)

// inout參數(shù)

// 參數(shù)默認(rèn)是常量:let

// 在參數(shù)前面添加var修改,就可以修改參數(shù)

// 如果參數(shù)使用inout來修飾,就成了輸入輸出參數(shù),在函數(shù)內(nèi)部修改參數(shù),可以影響外部變量的值

func test8(inout name: String) {

name = "LIZE"

print(name)

}

var myName = "lize"

test8(&myName)

print("myName: " + myName)

// 參數(shù)前面用var修飾,修改參數(shù)

func test9(var name : String) {

name = "LIDAZE"

}

//函數(shù)嵌套

func test1(){

func test2(){

func test3(){

print("test3")

}

test3()

print("test2")

}

test2()

print("test1")

}

test1()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容