Swift 的基本語法

1.控制臺輸出

print("控制器輸出代碼")//print默認在后面添加\n

2.常量和變量

  • 1 定義常量用 let

    swift能夠自動推斷變量的類型拷恨,點擊option可以查看某饰。常量不能修改,如果需要修改用var修飾湖笨。
    let b = 10 //Int
    let b1 = 10.0 //Double
    let b2 = "" //String
    let b3 = true //Bool

  • 2 定義變量用 var

    變量的類型放到后面。需要注意的是:兩個變量進行運算蹦骑,必須類型一致慈省。
    var a: Int = 10
    var a1: Float = 10
    var a2: Double = 20
    var a3: String = "Hello World"
    var a4: Bool = true//布爾值為ture和false
    //運算時類型轉化
    var c = 20
    var d = 10.0
    var sum = Double(c) + d //Double
    var sum1 = c + Int(d) //Int

3.類型別名

  • 1.類型別名的定義,關鍵詞typealias

      typealias AType = Int
      typealias CustomString = String
    
  • 2.使用
    let e: AType = 20
    let : CustomString = "ssss"http://當定義的變量和常量沒被用到時眠菇,系統建議你改成""

4.元組

let (x,y,w,h) = (10,10,50,60) //x=10,y=10,w=50,h=60
//打印
print(x,y,w,h)
print(x)

5.函數/方法

  • 1.對象方法

    定義:func 方法名字(參數名字1: 參數類型,參數名字2: 參數類型, ...) -> 返回值

    • 1.方法關鍵字:func 方法名字:funcMethod 參數:整數a,b 返回值->:兩個Int類型
      func funcMethod(a: Int,b: Int) -> (Int, Int)
      {
      //返回兩個數的和边败、差
      let sum = a + b
      let miute = a - b

          //返回一個元組
          return (sum,miute)
      }
      //調用方法,獲取得一個元組
      let (s, m) = funcMethod(a: 20, b: 10)
      print(s)
      print(m)
      
    • 2.方法名字為method1,無參無返回值
      func method1()
      {

      }
      
    • 3.方法名字method2,有2個參數捎废,無返回值笑窜。
      //3種創(chuàng)建方法:
      func method2( p1: Int, p2: String)
      {

      }
      func method3(withParamter1 p1: Int, paramter2 p2: String)
      {
      
      }
      
      func method4(_ p1: Int, _ p2: String)
      {
      
      }
      //方法調用
      method2(p1: 20, p2: "ssss")
      method3(withParamter1: 20, paramter2: "sssss")
      method4(20, "ssss")
      
  • 4.方法名字:method5 無參,有返回值
    func method5() -> Int
    {
    return 30
    }

  • 5.方法名字為method6,無參登疗,有返回值排截,返回值為元組
    func method6() -> (Int, String)
    {
    return (20, "ss")
    }

  • 2.類方法

    定義:class func 方法名字(參數名字1: 參數類型,參數名字2: 參數類型, ...) -> 返回值

      //需加個關鍵詞class,就可以啦。如:
      class func method6() -> (Int, String)
      {
          return (20, "ss")
      }
    

6.定義類和創(chuàng)建對象

//class表示定義類
class LoginViewController: UIViewController
{
    func testMethod()
    {
        print("testMethod觸發(fā)")
    }

   class  func testMethod2()
    {
        print("testMethod2觸發(fā)")
    }
}
//初始化控制器對象
var loginCtrl = LoginViewController()
loginCtrl.testMethod()//調用方法
LoginViewController.testMethod2()//調用類方法

7.異常處理

  • 1.自定義異常類型
    enum LoginError: Error
    {
    case usernamenull /用戶名為空/
    case passwordnull /密碼為空/
    }

  • 2.設定拋出異常函數

    throws 表示如果有錯誤就拋出異常

      func loginButtonClick(username: String , password: String) throws
      {
          //如果用戶名為空
          if username.characters.count == 0
          {
              //本方法不解決匾寝,拋給調用該方法的方法去解決搬葬。
              throw LoginError.usernamenull
          }
          else if password.characters.count == 0
          {
              throw LoginError.passwordnull
          }
    
          //TODO::其它
      }
    
  • 3.捕捉異常

    do { try 有可能會出現異常的代碼} catch{處理錯誤}

      do
      {
          try loginButtonClick(username: "xiaomign", password: "")
      }
      catch LoginError.usernamenull
      {
          print("用戶名為空")
      }
      catch LoginError.passwordnull
      {
          print("密碼為空")
      }
    
      //如:json解析這個方法有異常返回荷腊,所以需要處理異常艳悔。
      do {
         var dict =  try JSONSerialization.jsonObject(with: Data(), options: JSONSerialization.ReadingOptions.init(rawValue: 0))
      }
      catch
      {
          print("解析錯誤")
      }
    

8. 斷言

斷言使用格式:assert(條件語句, "注釋說明")

var str = "11"
assert(str.characters.count > 0, "字符串長度不能為空")

9for循環(huán)

for i in 1...10  //1 <= x <= 10
{
    print(i)
}

for i in 1..<10  //1 <= x < 10
{
    print(i)
}

10.字符串

  • 1.定義一個字符串
    var string = "字符串"

  • 2.定義一個空字符串
    var string2 = String()

  • 3.字符串可變性
    var string3 = "hello "
    string3 += "world"
    print(string3)

      var string4 = "xiaoming"
      var string5 = "你好"
      var string6 = string4 + " " + string5
      print(string6)
    
  • 4.字符
    var char: Character = "A"
    var char2: Character = "你"

  • 5.字符串插入值
    var name = "小張"
    var age = 20
    var address = "黃巖島"
    //拼成:小張 20 黃巖島
    var result = name + " " + String(age) + " " + address
    print(result)

      var result2 = "\(name) \(age) \(address)"
      print(result2)
    
  • 6.計算字符串長度
    var length = result2.characters.count
    print(length)

  • 7.比較字符串
    var r: ComparisonResult = result.compare(result2)

      //注意:枚舉前面的類型可以省略
      if r == .orderedAscending
      {
          print("升序")
      }
      else if r == .orderedDescending
      {
          print("降序")
      }
      else
      {
          print("相等")
      }
    
  • 8.前綴/后綴比較
    result.hasPrefix("s") //result是否以s開頭
    result.hasSuffix("x") //result是否已為x后綴

11.if...else...

注意:if()else{}中,()可以省略女仰,{}任何情況下都不能省略猜年。

//語句1
if i == 0
{
    print("i == 0")
}
//語句2
if i == 0
{

}
else if i == 1
{

}
else
{

}

12.switch

  • 1.在switch里面,不用加break疾忍。

      switch i {
      case 0:
          print("i = 0")
      case 1:
          print("i = 1")
      case 2:
          print("i = 2")
      default:
          print("default")
      }
    
  • 2.switch匹配區(qū)間

      switch i
      {
      case 0...5:
          print("i大于等于0 小于等于5")
      case 6...10:
          print("i大于等于6 小于等于10")
      default:
          print("i大于10")
      }
    
  • 3.switch匹配元組

      let (x1, x2) = (10, 20)
      switch (x1, x2) {
      case (10, 20):
          print("x1 = 10, x2 = 20")
      default:
          print("other")
      }
    

13.for...in

let array = ["1","2","3"]
//遍歷數據
for object in array
{
    print(object)
}

14.數組

  • 1.數組定義
    let arr: [String] = [] //數組里面沒有數據乔外,數組元素類型是String
    let arr2: Array<String> = []
    var arr3: Array<Int> = [1,2,4] //在swift3.0中,NSMutableArray一罩,NSArray中可以存放基本類型
    let arr4: NSMutableArray = NSMutableArray()

  • 2.取值
    arr3[0]
    arr3.first //第一個元素
    arr3.last //最后一個元素

  • 3.添加元素
    arr3.append(5)

  • 4.根據索引刪除元素
    arr3.remove(at: 0)
    print(arr3)

  • 5.刪除所有的
    arr3.removeAll();

15.字典

  • 1.定義一個空字典
    var dic1: [String:String] = [:]
    var dic2: Dictionary<String, String> = [:]

      var dic3 = ["key1": "value1", "key2":"value2"]
    
  • 2.修改值
    dic3["key1"] = "xiaoming"

  • 3.添加鍵值對
    dic3["key3"] = "value3"

  • 4.把key3對于的值賦值為nil杨幼,但是鍵還存在
    dic3["key3"] = ""

  • 5.移除鍵值對
    dic3.removeValue(forKey: "key3")

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市聂渊,隨后出現的幾起案子差购,更是在濱河造成了極大的恐慌,老刑警劉巖汉嗽,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欲逃,死亡現場離奇詭異,居然都是意外死亡饼暑,警方通過查閱死者的電腦和手機稳析,發(fā)現死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弓叛,“玉大人彰居,你說我怎么就攤上這事∽辏” “怎么了陈惰?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闭专。 經常有香客問我奴潘,道長,這世上最難降的妖魔是什么影钉? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任画髓,我火速辦了婚禮,結果婚禮上平委,老公的妹妹穿的比我還像新娘奈虾。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布肉微。 她就那樣靜靜地躺著匾鸥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碉纳。 梳的紋絲不亂的頭發(fā)上勿负,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音劳曹,去河邊找鬼奴愉。 笑死,一個胖子當著我的面吹牛铁孵,可吹牛的內容都是我干的锭硼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蜕劝,長吁一口氣:“原來是場噩夢啊……” “哼檀头!你這毒婦竟也來了?” 一聲冷哼從身側響起岖沛,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤暑始,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烫止,有當地人在樹林里發(fā)現了一具尸體蒋荚,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年馆蠕,在試婚紗的時候發(fā)現自己被綠了期升。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡互躬,死狀恐怖播赁,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情吼渡,我是刑警寧澤容为,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站寺酪,受9級特大地震影響坎背,放射性物質發(fā)生泄漏。R本人自食惡果不足惜寄雀,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一得滤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盒犹,春花似錦懂更、人聲如沸眨业。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽龄捡。三九已至,卻和暖如春慷暂,著一層夾襖步出監(jiān)牢的瞬間聘殖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工呜呐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留就斤,地道東北人悍募。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓蘑辑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坠宴。 傳聞我的和親對象是個殘疾皇子洋魂,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,819評論 1 10
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,844評論 0 6
  • Swift 介紹 簡介 Swift 語言由蘋果公司在 2014 年推出,用來撰寫 OS X 和 iOS 應用程序 ...
    大L君閱讀 3,234評論 3 25
  • 1喜鼓、隨機數 不需要隨機數種子 arc4random()%N + begin:產生begin~begin+N的隨機數...
    我是小胡胡123閱讀 4,168評論 0 2
  • 不知從何時開始副砍,發(fā)現自己已不再喜歡你了,更多的是愛庄岖。 每天早晨睜開眼睛第一個想到的人就是你豁翎,然后翻開手機看有沒有你...
    獨孤噬閱讀 141評論 0 0