zoukankan      html  css  js  c++  java
  • Swift学习笔记

    Swift学习笔记

    注意点:

    1:不用些main函数

    2:不用加分号(同一行写多条语句要加)

    3;用let声明常量(常量不可修改),var声明变量

    4:字符串用""(双引号扩着)

    注:Swift是类型安全语言,

    1:数据类型

    常见的数据类型:比其他语言多了 元组(Tuple),可选类型(Optinal)

    注:Swift在使用变量前必须初始化,没有默认初始化

    1.1:
    声明变量,常量类型 ,一般可不写,Swift可以自动推断数据类型

    let age:Int = 10;
    

    标示:
    十进制:直接写
    二进制:0b(前缀:零b)
    八进制:0o(前缀零o)
    十六进制:0x(前缀零x)

    浮点数
    Double:64位浮点数(默认)
    Float:32位浮点数

    Bool:true与false,但是与OC不同:0不是false。

    2:字符串

    1:字符串的拼接:直接用“+”

    let s1 = "123"	
    let s2 = "456"
    let s3 = s1+s2//字符串的拼接
    

    2:字符串

    用反斜线和小括号()可把常量或变量插入到字符串中

    let num = 2
    let str = "I Hava (num) dogs"	
    或者 把num强制转为String类型,
    let str = "I Hava "+String(num)+" dogs"	
    

    3:运算符

    这里着重介绍:范围运算符和元组类型

    3.1范围运算符

    范围运算符:"..<"与"..."

    a..<b 表示:[a,b)
    a...b 表示:[a,b]
    

    用处:(对于for循环,可以非常方便的使用。)

    for i in 0...3{
    	print(i);
    }
    
    3.2元组

    元组是由任意N个类型的数据组成,元组中得元素成为元素

    表示:

    let point = (x:1,y:2)//x,y为元素名称
    var point = (1,2)
    let point = ()//空元组
    let point:(Int,String) = (10,"cnblog")//定义时指明元素的类型
    let point = (10,"cnblog")
    

    元素访问:

    point.0//访问元组第一个位置的元素
    point.x//针对第一种表示可用,	
    point.0 = 2/修改元素的值,只针对用var声明的元组
    

    注:1:如果用的是let声明的话不能修改元组的元素的值,但是var可以。
    2:在明确指明元素类型的情况下,不能加上元素名称

    赋值
    let(x,y) = (1,2)//x与y的值分别是常量,并且Swift的赋值运算没有返回值

    可以使用下划线忽略某个元素的值,取出其他元素的值

    var point = (1,2)
    var(_,y) = point;//用y来接收point中2得值
    

    4:流程控制

    着重介绍for-in,switch

    4.1使用for-in
    for i in 0...3{
    	print(i);
    }
    
    for _ in 0...3{
    	print("---");
    }
    

    注:可以使用_循环来忽略循环体的值.

    4.2使用标签

    标签:可以明确要退出哪个循环

    flag:for _ in 1...3{ //flag为 标签
     for item in 1...5{
      	  println("------")
       	 if flag == 2 {
       	     break group
       	 }
     }
    println("lalla")
    
    4.3使Switch的使用

    C语言中Switch只能放int,但是Swift中可以放int,String等。同时可以省略break,即可退出循环

    注:1:每个case中必须要有能够执行的语句,也即case后面的语句不能为空,

    2:但是case后面,可以填写多个条件,条件之间用逗号隔开

    switch x {
    case 1,2,3:
    	println("1,2")
    default
    	println("other");	
    }
    

    3:case后可填写范围作为匹配

    switch x {
    case 1...3://这里是数学上的[1,3]
    	println("1,2")
    default
    	println("other");	
    }
    

    4:case可以匹配元组

    let point = (1,1);
    switch x {
    case (0,0):
    	println("0,0")
    case (_,1):		//忽略point.0的值,也即任何值都可以
    	println("any,1")
    default
    	println("other");	
    }
    

    5:case后可以跟着where

    let point = (1,1);
    switch x {
    case (x,y) where x = y:
    	println("x=y")
    default
    	println("other");	
    }
    

    5:函数

    1:定义格式

    1:有返回值

    func 函数名(形参列表) -> 返回值类型{
    	//函数体
    }
    
    //形参列表格式:形参名:形参类型
    

    2:无返回值

    //2.1:
    func 函数名(形参列表) -> Void{
    	//函数体
    }
    
    //2.2:
    func 函数名(形参列表) -> Void{
    	//函数体
    }
    
    //2.3
    func 函数名(形参列表){
    	//函数体
    }
    
    
    //注空元组相当于Void
    

    外部参数名:可以在调用函数时明确各个参数的含义

    定义格式
    
    func 函数名(外部参数名 形参名:形参类型) ->返回值{
    	//函数体
    }
    	
    注:一旦定义了外部参数名,在调用函数的时候一定要加上外部参数名
    
    //简写
    
    func 函数名(#形参名:形参类型) ->返回值{
    	//函数体
    }
    

    Swift函数的参数分为常亮参数和变量参数

    迷人情况下,函数的参数都是常量参数,不能再函数内部修改

    func test(num:Int){
    	num = 10//报错
    }
    

    6:输入输出参数

    Swift中可以利用输入输出参数修改外部变量的值,(同C语言的指针)
    定义:参数名前加上inout

    func change(inout num:Int){
    	num = 10
    }
    
    var a = 20
    change(&a)
    

    其他

    类型别名:关键字:typlealias

    格式
    typlealias myInt = Int

  • 相关阅读:
    前端编程规范记录
    搬砖工坑爹教程
    JS的模块化编程学习之旅
    后端开发遇到的问题
    git学习中遇到的疑难杂症
    微信小程序填坑之旅
    详解Redis中两种持久化机制RDB和AOF
    redis系列:RDB持久化与AOF持久化
    Java中判断字符串是否为数字
    @Aspect 注解使用详解
  • 原文地址:https://www.cnblogs.com/fengtengfei/p/4591356.html
Copyright © 2011-2022 走看看