美文网首页
变量、常量、函数以及闭包(一)

变量、常量、函数以及闭包(一)

作者: 睦月MTK | 来源:发表于2020-01-08 17:25 被阅读0次
一、声明包
package xxx

注意:声明为main的包将会作为程序入口,按照约定,声明的包名与你在别的文件中导入这个包的包名的最后一个元素相同


二、导入包
import "xxx/xxx/..."
//or
import ("xxx/xxx/...";"xxx/xxx/...")

注意:分号可以不加,但是得写成多行,不然报错


三、变量、变量类型、类型转换
  • 声明变量的方式
    • var <vName1> [, <vName2> , ...] <vType> [= <value1> , <value2> , ...]多个变量的类型取最后一个,不初始化变量的话,将会自动初始化为默认值比如bool的初始化为false,数字类型的初始化为0,string的初始化为""等等
    • var <vName> [, <vName2> , ...] = <value1> [,<value2> , ...]自动根据初始化的值进行类型声明,如果都是数字类型,则根据数字精度进行自动判断
    • <vName> [, <vName2> , ...] := <value1> [,<value2> , ...]上一个的简便写法,不同之处在于只能写在函数内部
    • var ()同时声明多个变量
    var (
          <vName1> [, <vName2> , ...] <vType> [= <value1> , <value2> , ...]
          <vName> [, <vName2> , ...] = <value1> [,<value2> 
          ...
    )
    
  • 变量类型(int、uint、uintptr长度是根据机器位数来决定的,在32位机器上就是32位长,在64位机器上就是64位长,没什么特别原因优先用这三个类型)
    • bool
    • string
    • int int8 int16 int32/rune int64
    • uint uint8/byte uint16 uint32 uint64 uintptr
    • float32 float64
    • complex64 complex128
  • 类型转换vType(vName),任何类型转换都必须加上vType(),而不能像大多数语言一样部分类型转换是自动的

四、常量
const xxx

五、函数
  • 声明函数func <funcName>([... , <vNamen> [vTypen],] <vNamen1> <vTypen1>) ([returnVariable1,] <returnType1> [,[returnVariable2,] <returnType2> , ...])
  • 返回值(返回值的类型被定义在函数声明里面,且可以返回多个值),如果函数声明中只定义了返回值类型,则return语句要加上需要返回的变量,用逗号分隔。如果函数声明中定义了返回值变量名,则只需要一个return关键字就可以了

六、闭包

例子:

func fibonacci() func() int {
    llNumber := 0
    lNumber := 1
    init := 0
    return func() int {
        for init < 2 {
            init ++
            return init - 1 
        }
        result := llNumber + lNumber
        llNumber = lNumber
        lNumber = result
        return result
    }
}

func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ {
        fmt.Println(f())
    }
}

相关文章

  • Swift-进阶 :闭包(一)使用&捕获原理

    本文主要分析闭包以及闭包捕获变量的原理 闭包 闭包是一个捕获了全局上下文的常量或者变量的函数,通俗来讲,闭包可以是...

  • Swift中的闭包定义

    定义闭包变量 定义可选闭包变量 定义闭包别名 定义闭包常量 在函数内部 作为函数参数 作为函数参数(隐式参数类型)...

  • Swift 闭包底层探究

    闭包 闭包:一个函数和它所捕获的变量\常量环境组合起来,称为闭包(一般它捕获的是外层函数的局部变量\常量) 可以把...

  • swift - 闭包的语法与理解

    从函数到闭包 首先来定义一个简单的函数 这里用一个常量来指向函数,闭包其实就是一个变量或者常量来指向闭包(bloc...

  • swift-闭包和闭包表达式的区别

    闭包:一个函数和他所捕获的变量/常量环境组合在起来称为闭包.闭包表达式:

  • 变量、常量、函数以及闭包(一)

    一、声明包 注意:声明为main的包将会作为程序入口,按照约定,声明的包名与你在别的文件中导入这个包的包名的最后一...

  • Swift闭包

    闭包的定义闭包是一个捕获了上下文的常量或变量的匿名函数。 ?的全局函数是一种特殊的闭包,不捕获变量; ?的内嵌函数...

  • swfit Block 捕获值 与 闭包是引用类型

    捕获值 闭包可以在其定义的上下文中捕获常量或变量 即使定义这些常量和变量的原域已经不存在,闭包仍然可以在闭包函数体...

  • Swift 3.0之七、闭包

    闭包能够捕获和存储其上下文中的常量和变量的引用,闭合并包裹这些常量和变量,因此被称为“闭包”。 函数是特殊形式的闭...

  • Swift-08:闭包

    1.分析闭包以及闭包捕获变量的原理2.逃逸闭包 & 非逃逸闭包 一、闭包 闭包是一个捕获了全局上下文的常量或者变量...

网友评论

      本文标题:变量、常量、函数以及闭包(一)

      本文链接:https://www.haomeiwen.com/subject/tzmsactx.html