最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • [js go]从你好世界到变量与常量

    正文概述 掘金(jslgo)   2020-12-10   434

    从Hello world开始吧

    搭建开发环境, 此处可Google

    # 创建helloworld文件夹, 进入helloworld文件夹, 创建main.go文件
    $ mkdir helloworld && cd $_ && touch main.go   
    
    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	fmt.Print("Hello world!")
    }
    

    运行

    # 运行main.go的代码
    $ go run main.go
    

    或者

    # 构建hellowworld可执行文件
    $ go build
    $ ./helloworld
    

    上注释

    // go自带lint和format工具, 类似eslint和prettier, 统一了代码规范, 程序的可读性, 可维护性更强
    // 包名, 如果是main, 从此处作为入口, 编译成可执行文件, 类似webpack配置的entry或者rollup配置的input
    package main
    
    // 引入go官方的包或者第三方的包, 引入多个包可写在括号里用逗号分隔, 编辑器可自动检测你需要引用什么包
    import (
    	"fmt"
    )
    
    // 程序的入口, 没有参数和返回, func关键字声明函数, 同js中的function
    func main() {
    	// 使用fmt包对外暴露的Print方法, 注意P大写, 字符串必须用双引号, 单个字符才能用单引号
    	fmt.Print("Hello world!")
    }
    

    变量

    语法规则

    • 可用var关键字声明变量, 同js
    • 变量命名规范同js, 只能包含字母数字下划线, 不能以数字开头
    • 可批量命名, 用括号括起来, 用逗号分隔, 同批量引入包
    • 命名变量后必须定义类型, 或者由赋值推导类型
    • 命名后如果不赋值, 默认为该变量类型的零值
    • 函数内部声明的变量必须使用, 不然会报错, 函数外声明的全局变量不使用不会报错但是不推荐
    • 同一作用域内不能重复命名
    // 批量声明变量
    var (
    	name   string    // ''
    	age    int       // 0
    	isOk   bool      // false
    	a0   = "hello" // 类型推导为string, 注意字符串不能用单引号 
    	a1, a2 = 1, 0 // 同时声明和赋值多个变量
            a1 = 1 // 重复命名, 报错
    	a3 // 未定义类型, 报错
    )
    

    简短变量声明

    在函数体内部可使用:=声明变量

    str := "Hello world!"
    fmt.Print(str)
    a1, a2 := 0, 1
    fmt.Print(a1, a2)
    

    匿名变量

    因为go中函数可以返回多个值, 某些情况下我们只需要使用其中一部分值, 这种场景可使用匿名变量, 即下划线_

    func ret3string() (string, string, string) {
    	return "res1", "res2", "res3"
    }
    
    func main () {
    	s1, _, _ := ret3string() // _ 匿名变量, 不占用内存和命名空间, 不会产生重复声明
            fmt.Print(s1)
    }
    

    常量

    常量即在程序的运行期间内不会改变的量

    语法规则

    • 用const关键字声明常量, 同js
    • 可批量声明, 用逗号隔开
    • 批量声明时, 如果某一行没有赋值, 则和上一行的值一样
    const (
    	a1 = 1
    	a2 // 默认和上一行的值一样, 即a2的值也
    )
    

    iota

    • iota为常量计数器, 类似ts中的enum
    • const关键字出现时, iota被重置为0
    • const中, 没新增一行, iota += 1
    const (
    	b1 = iota // iota为0
    	b2 // iota为1, b2等于b1
    	b3 = 1 // iota为2
    	_  = iota // iota为3
    	b4 // iota为4, b4等于iota, 也为4
    	b5, b6 = iota + 1, iota + 2 // iota为5
    	b7, b8 = iota + 1, iota + 2 // iota为6
    )
    
    

    iota的应用

    const (
    	_  = iota
    	KB = 1 << (10 * iota)
    	MB = 1 << (10 * iota)
    	GB = 1 << (10 * iota)
    	TB = 1 << (10 * iota)
    	PB = 1 << (10 * iota)
    )
    

    起源地下载网 » [js go]从你好世界到变量与常量

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元