Swift語(yǔ)言初探

Swift語(yǔ)言簡(jiǎn)介:

Swift是Apple在2014年6月2日并于2015年12月4日宣布開放源代碼的新開發(fā)計(jì)算機(jī)編程語(yǔ)言,它起源于Objective-c并參考了C/JavaScript/Python/Java等多種語(yǔ)言,適配與OS X和iOS系統(tǒng),Swift是第一套就有腳本語(yǔ)言同樣的表現(xiàn)力和趣味性的系統(tǒng)編程語(yǔ)言.

下面就讓我們看一下Swift語(yǔ)言的一些基本屬性

(一)常量 : 在Swift語(yǔ)言中定義一個(gè)常量要使用 let 這個(gè)關(guān)鍵字 (示例代碼如下)
1.定義常量屬性
let a : String = "Hello"
let b = 20.1
var c = 10
let 遲到的 = "做俯臥撐" //Swift中可以用中文直接進(jìn)行命名
let ?? = "哭" //Swift中可以用表情符號(hào)進(jìn)行命名

2.類型強(qiáng)轉(zhuǎn)格式: 數(shù)據(jù)類型(需要強(qiáng)轉(zhuǎn)的數(shù)據(jù))
let d = a + Double(c) //在Swift里面要將兩個(gè)不同類型的數(shù)據(jù)合并到一起 就要對(duì)其中的某一條數(shù)據(jù)進(jìn)行強(qiáng)制轉(zhuǎn)換

3.運(yùn)算符重載
let str2 = str + str1 //在Swift中兩個(gè)字符串可以直接相加

  • 注意 :
    1> Swift語(yǔ)言中的常量不可以重新賦值;
    2>Swift中可以用中文直接進(jìn)行命名
    3>Swift中可以用表情符號(hào)進(jìn)行命名
    4> Swift語(yǔ)言支持隱式類型推斷(可以根據(jù)初始值自動(dòng)的判斷Swift的數(shù)據(jù)類型)
    5>Swift語(yǔ)言中不支持隱式類型的轉(zhuǎn)換(不可以讓兩個(gè)不一樣的數(shù)據(jù)做四則運(yùn)算)
    6>Swift語(yǔ)言中支持運(yùn)算符的重載,會(huì)根據(jù)語(yǔ)境自動(dòng)哦按段運(yùn)算符的含義

(二)變量 : 在Swift語(yǔ)言中定義一個(gè)變量要使用 var 這個(gè)關(guān)鍵字
1.定義變量屬性(示例代碼如下)
var a = 10
a = 100 //當(dāng)Swift使用var定義一個(gè)變量的時(shí)候,我們可以直接改變它的值
2.定義變量初始值為nil的格式: var + 變量名 + ":" + 變量類型? = nil
var b : String? = nil

let 與 var 的區(qū)別:
let所指向的地址區(qū)域中的數(shù)據(jù)是不可更改的,var指向的地址區(qū)域中的數(shù)據(jù)是可以更改的


(三)數(shù)組
1.定義數(shù)組屬性(示例代碼如下)
let array1 : [Int] = [1,2,4]//第一種:數(shù)組初始化先指定數(shù)據(jù)類型
let array2 : [Int] = []//定義一個(gè)空的數(shù)組
var array = [1,2,3,4,5] //定義一個(gè)int類型的變量數(shù)組

2.數(shù)組的增刪改查(示例代碼如下)

1.數(shù)組的查
  print(array[1])
2.數(shù)組的增
  array.insert(10, atIndex: 2)  //在數(shù)組中指定位置單獨(dú)的插入一條數(shù)據(jù)
  var array1 = [11,12,13,14,15]
  array.insertContentsOf(array1, at: 2) //在數(shù)組中指定位置插入一個(gè)新的數(shù)組
  print(array)
3.數(shù)組的刪
 //刪除數(shù)據(jù)的同事,保存內(nèi)存空間
 //Swift里面的Bool是一個(gè)枚舉,只有true(真)和false(假)兩種參數(shù)
  array.removeAll(keepCapacity: true)//刪除所有
  let range : Range = Range(start: 0, end: 2)//刪除指定
  array.removeRange(range)
4.數(shù)組的改
  array[1] = 10
  print(array)
5.數(shù)組的拼接
  let array2 = [6,7,8,9,10]
  var array3 = array + array2
  print(array3)


(四)字典
1.創(chuàng)建字典初始化方式(兩種)

let dictionary = [1:2, 3:4, "a":"b"]//創(chuàng)建字典的兩種方式,Swift1.0版本不存在這種初始化方式

let dictionary1 : [Int : String] = [1:"a", 2:"b"]//Swift的字典中,所有的key值和所有的value都必須是同一種類型
var dictionary2 = [1:2, 3:4, 5:6]
print(dictionary2)

2.字典數(shù)據(jù)的增刪改查

1.字典數(shù)據(jù)的增加
  dictionary2[7] = 8
  print(dictionary2)
2.字典數(shù)據(jù)的修改
  dictionary2[1] = 100
  print(dictionary2)
3.字典數(shù)據(jù)的刪除
  dictionary2.removeValueForKey(1)
  print(dictionary2)
4.字典數(shù)據(jù)的查找
 var dictionary = [1 : 2, 3 : 4, 5 : 6]
 print(dictionary)

(五)元祖
1.定義元祖屬性 : 要使用()表示定義一個(gè)元祖,元祖里面沒有數(shù)據(jù)類型的概念(示例代碼如下)
let type = ("妞妞","DHM")
2.訪問元祖的方法(兩種)

//第一種方法
 print(type.0)
 let type2 : (name : String, nickName : String) = type
//第二種方法:通過(guò)對(duì)應(yīng)的key值找到相對(duì)應(yīng)的value值
print(type2.name)

(六)循環(huán)

1.for 循環(huán)

let array = [1,2,3,4,5]
for var i = 0; i < array.count; i++ {
    print("i = \(i)")   
}

2.while循環(huán)

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

3.repeat循環(huán)(相當(dāng)于OC中的do while)

repeat{
i++
print(i)
}while i < 10
  • //Swift1.版本的時(shí)候叫做do while,Swift2.0版本的時(shí)候叫做repeat while

4.for in 循環(huán)

let array1 = [2,3,4,5,6]
for var a in array1 {
    print(a)
}

(七)循環(huán)結(jié)構(gòu) -- 分支結(jié)構(gòu)

1.
  var timer : String? = nil
  if timer != nil {
  print("timer存在")
  }else{
  print("timer不存在")
  }
2.switch分支結(jié)構(gòu)
  let value = 100
  switch value {
  case 0 :
      print(value)
  case 1:
      print(value)
  default:
      print("大妞妞")
  }
     //0...10 表示的是從0開始到10結(jié)束,并且包含10
     //0..<10 表示的是從0開始到10結(jié)束,但不包括10
  switch value {
  case 0...10:
      print(value)
  case 11..<20:
      print(value)
  default:
      print("??牌大妞妞")
  }  
3.
  let point = (10,10)
  switch point {
  case(10, 10):
      print(point)
  case(_, 10):
      print(point.0)
  case(10, _):
      print(point.1)
  case(_, _):
      print(point)
  }
4.
  let value1 = 0
  let value2 = 100
  switch value1 {
  case 0 where value2 < 10:
      print(value1)
  case 0 where value2 > 10:
      print("正確")
  default:
      print("錯(cuò)誤")
  }

(八)函數(shù)分類
1?.無(wú)參有單個(gè)返回值
2.無(wú)參有多個(gè)返回值
3.有參無(wú)返回值
4.有參有單個(gè)返回值
5.有參有多個(gè)返回值
6.inout 函數(shù)
7.嵌套函數(shù)

1.無(wú)參無(wú)返回值函數(shù)
    //func(關(guān)鍵字)  test(函數(shù)名) "()"(參數(shù)列表) -> Void(返回值類型)
  func test() -> Void {
      print("我是第一個(gè)函數(shù)")
  }
  test()
2.無(wú)參有返回值函數(shù)
  func test1() -> String {
      return "我是第二個(gè)函數(shù),無(wú)參有返回值"
  }
  //接收函數(shù)的返回值
  let str = test1()
  print(str)
  //數(shù)組后面的類型用尖括號(hào)
  func test1() -> Array<Int> {
      return [1,2,3]
  }
  //返回一個(gè)OC的數(shù)組
  func test3() -> NSArray {
      return [1, 2, "a", "b"]
  }
3.有參無(wú)返回值的函數(shù)
    //參數(shù)格式是  參數(shù)名 + ":" + 參數(shù)類型
    // -> Void 可以省略
  func test4(name : String, sex : String) -> Void {
      print("我叫\(zhòng)(name), 我的性別是\(sex)")
  }
  test4("大妞妞", sex: "未知")
  //參數(shù)是一個(gè)數(shù)組格式 : 參數(shù)名 + ":" + Array<數(shù)據(jù)類型>
  func test5(phoneNumber : Array<Int>) {  
  }
4.有參有返回值函數(shù)
  func test6(name : String) -> String {
      return "我的名字是\(name)"
  }
5.無(wú)參有多個(gè)返回值
  func test7() -> (String,String) {
      return("大妞妞", "21")
  }
  let type = test7()
  print(type)
  print(type.1)
  func test8(name : String, sex : String) -> (String,String) {
      return(name, sex)
  }
  let type1 = test8("妞妞", sex: "男")
6.into函數(shù)
   //Swift函數(shù)里面的參數(shù)  默認(rèn)是使用let修飾的,是不可以更改的
  func test9(inout number : Int) {
      number = 100
  }
  var a = 5
  test9(&a)
  print(a)
7.函數(shù)嵌套
     //第一層
  func test10() {
        //第二層
      func test11() {
            //第三層
          func test12() {
                //第四層
              func test13() {
                    //第五層
                  func test14() {
                        //第六層
                      func test15() {
                           //.....可以無(wú)限定義下去
                     }
                  }
              }
          }
      }
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粥诫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子彤守,更是在濱河造成了極大的恐慌疲牵,老刑警劉巖妖啥,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛤签,死亡現(xiàn)場(chǎng)離奇詭異拴清,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)躲舌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門丑婿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人没卸,你說(shuō)我怎么就攤上這事枯冈。” “怎么了办悟?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)滩褥。 經(jīng)常有香客問我病蛉,道長(zhǎng),這世上最難降的妖魔是什么瑰煎? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任铺然,我火速辦了婚禮,結(jié)果婚禮上酒甸,老公的妹妹穿的比我還像新娘魄健。我一直安慰自己,他們只是感情好插勤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布沽瘦。 她就那樣靜靜地躺著,像睡著了一般农尖。 火紅的嫁衣襯著肌膚如雪析恋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天盛卡,我揣著相機(jī)與錄音助隧,去河邊找鬼。 笑死滑沧,一個(gè)胖子當(dāng)著我的面吹牛并村,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滓技,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼哩牍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了令漂?” 一聲冷哼從身側(cè)響起姐叁,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后外潜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體原环,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年处窥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嘱吗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滔驾,死狀恐怖谒麦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哆致,我是刑警寧澤绕德,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站摊阀,受9級(jí)特大地震影響耻蛇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胞此,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一臣咖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧漱牵,春花似錦夺蛇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至闻镶,卻和暖如春截型,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背儒溉。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工宦焦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顿涣。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓波闹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涛碑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子精堕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容