Swift3.0基础知识笔记

Swift3.0基础知识笔记

五月 20, 2019

import UIKit

字典的读取和编辑


var message_me = ["11":"亦可","12":"小艾","13":"李可"]
print(message_me)
print(message_me["11"]!)//使用下标语法通过键获得相应的值
message_me["14"] = "亦可"//使用下标语法添加新元素
print(message_me)
message_me["12"] = "李毅"//使用下标语法修改对应元素值
print(message_me)
message_me.updateValue("舒儿", forKey: "15")//使用updateValue()方法,修改指定键的值
print(message_me)
message_me["12"] = nil //将某个键的值设为nil,删除对应的键值对
print(message_me)
message_me.removeValue(forKey: "11")//使用removeValue(forKey: "  ")方法删除指定的键值对
print(message_me)
  • 字典的遍历

    for key_a in message_me.keys //遍历键
        {

    print(key_a)

    }
    for value_b in message_me.values//遍历值
    {

    print(value_b)

    }

    for (key,value) in message_me//遍历键值对

    {

    print(key+”:”+value)

    }
    let num=2
    switch num {
    case 1:

    数组


    • 数组遍历
      var numbers = [1,1,12,3,4,56,78,45]
      for index in 0..<numbers.count
       {
      print(numbers[index])
      }
      for number in numbers
      {
      print(number)
      }
      numbers+=[23,45,56]//数组拼接用+号
      numbers.append(100)//数组在末尾加一个数
      numbers.insert(200, at: 3)//在指定位置插入一个数
      numbers[1]=1000//改变数组的某个值
      numbers.isEmpty//判断数组是否为空
      numbers.count//计算数组的长度
      numbers.contains(200)//判断是否存在200
      numbers.sort()//数组排序,默认升序排列
      numbers.sort(by:>)//降序排列
      var userList = [(name:”Tom”,age:20),(name:”Alise”,age:19),(name:”Aike”,age:20)]
      userList.sort(by:{$0.name>$1.name})//复杂元素进行排序
      case 2:
  • 复杂数组遍历

    let scores = ["jerry":78,"Tom":89,"Aili":94]
    for (name,score) in scores
    {
    print(name + "score is \(score)")
    }
  • 对维数组遍历

      let Scores = [[1,4,567,43],[35,67,89,34],[23,56,67,54]]
      for subScore in Scores
      {
      for Score in subScore
      {
          print(Score)
    
    }
      }
  • 对指定范围数组遍历使用定义range的方法实现

    let number_r = [1,2,3,4,5,6]
      let range = 2..<number_r.count
     for (index_i,value) in zip(range, number_r[range])//zip()的作用是将两个序列的元素,一一对应合并生成一个新序列。
     {
     print("\(index_i):\(value)")
     }

    default:

    print("输入错误!")

    }
    //continue语句,跳过此次循环
    let studentSex = [“man”,”woman”,”man”,”woman”,”man”,”woman”,”man”,”woman”]
    var boysAcount = 0
    for sex in studentSex
    {

    if(sex=="woman")//注意等号(==)与赋值号(=)
    {
    continue
    }

    boysAcount+=1
    }
    print(boysAcount)

    //fallthrough语句,继续下一个case分支,swift默认只执行选择的case分支
    let time = 6
    var message = “It’s now”
    switch time {
    case 2,3,4,5,6,7,9,10,16:

    message+=" \(time) o'clock"
    fallthrough

    default:

    message+=" ."

    }

  • switch语句:把一个值与若干值匹配,执行匹配到的语句

    let Time = 12
    switch Time {
    case 7:

    print("It's Time get up!")

    case 8,12,18:

    print("It's Time for eating!")

    case let x where x>18 && x<=24:

    print("It's Time for happy!")

    case 1…6:
    print(“It’s Time for rest!”)
    default:

    print("Keep busy!")

    }

  • if条件判断语句:
    let IDcard = “530381199705202956”
    let count = IDcard.lengthOfBytes(using: String.Encoding.utf8)
    if count == 18
    {

    print("准确的身份证号")

    }
    else if count == 15
    {

    print("准确的身份证号")

    }
    else
    {

    print("不准确的身份证号")

    }

  • repeat-while语句:与传统的do-whilet语句一样:先执行语句块在,判断,至少执行一次
    var Index = 0
    repeat
    {

    Index += 1
    print("你好,love!")

    }while Index < 5

  • while循环语句
    var index = 0
    while index < 5 {

    index += 1
    print("你好,like!")

    }

for循环:

重复一条语句达到特定的条件


for _ in 0..<3//(..<)表示0~3,但不包含3,(_)表示一个占位符
{
    print("黑凤梨!")
}

for _ in 0...3//(...)表示0~3,包含3
{
print("Love you!")
}
  • 字符串的比较

    let passwordFromUser = "w2956m"
      let passwordFromDb = "w2956m"
      if passwordFromUser == passwordFromDb
      {
        print("你可以登录系统!")

    }

  • 字符串的大小写转换

    let hello = "Hello WangMeng!"
      print(hello.uppercased())//转换为大写
      print(hello.lowercased())//转换为小写
      print(hello.capitalized)//转换为首字母大写
  • 字符串的截取和替换

    var hello_s = "遇见未知的自己!"
      hello_s.replacingOccurrences(of: "遇见", with: "找寻")
      hello_s.remove(at: hello_s.index(hello_s.startIndex, offsetBy: 3))
  • 浮点数据的实用函数

    let number_f = -9.8
      number_f.advanced(by: 20) //加上20
      number_f.distance(to: 23.3)//获得两个数据的差值
      number_f.isFinite//判断数据是否有限
      number_f.isInfinite//判断数据是否无限
      number_f.isZero//判断数据是否为零
      number_f.isLess(than: -9.0)//判断数据是否小于-9.0
      number_f.isNaN//判断数据是否为空
      number_f.isEqual(to: -9.80)//判断数据是否等于-9.80
      number_f.isNormal //判断数据是否正常
  • 三元条件运算符question ?answer1 :answer2

    let score = 66
      let result=(score>60) ? "通过考试":"未通过考试" //注意(?)号前后都有一个空格
  • 元组值得访问

    let http404Error = (statusCOde:404,description:"not found!")
      print("访问此页面时出现\(http404Error.statusCOde),页面\(http404Error.description)")