zoukankan      html  css  js  c++  java
  • go入门

    go入门

    go

    go是强类型,编译型的语言

    go开发环境

    环境变量 说明
    GOROOT 指定go的SDK安装目录
    Path 添加SDK的/bin目录
    GOPATH 工作目录,将来我们的go项目的工作路径,不然不能执行
    #可以通过命令go env查看是否配置正确
    如果没有设置GOPATH
    windows下修改:
    set GOPATH=路径
    set GOROOT=路径
    

    GOPATH

     GOPATH的工作区包含bin,src,和pkg这三个:
    	src——源码(包含第三方的和自己项目的)
    	bin——编译生成的可执行程序
    	pkg——编译时生成的对象文件
    

    go代码的执行

    go文件执行常见的两种方式

    1.go build生成二进制可执行文件.exe,但是需要手动运行exe文件

    2.go run 还是会编译的,不过不会生成.exe文件(直接编译运行),而且是一次性执行

    1.exe文件会比较大,会把执行所需要的相应的文件打包进去(编译器会讲程序运行依赖的库文件包含在可执行文件中),然后它可以在没有go运行环境的电脑运行

    其他用法

    go build -o zx.exe hello.go 自定义生成exe名字 
    

    2.hello.go在没有go环境的电脑上无法运行

    go语言注意事项

    1.go语言定义的变量或者import的包如果没有使用到,代码就不能编译通过

    2.go用包名调用函数

    go中文网站

    https://github.com/golang/go/wiki/NonEnglish

    注释

    单行注//
    多行注释
    /*
    
    */
    

    go变量(静态)

    package main
    import "fmt"
    func main() {
    	//申明变量
    	var zx int
    	//变量赋值
    	zx=10
    	//输出变量
    	fmt.Println(zx)
    }
    

    10

    变量使用的三种方式

    1.指定变量类型,声明后不赋值,使用默认值(int的默认值0)

    var zx int
    fmt.Println(zx)
    
    0
    

    2.根据值自行判定变量的类型(类型推导)

    var zx1="dsa"
    fmt.Println(zx1)
    
    dsa
    

    3.省略var,注意:=左侧的变量不应该是已经声明过的,否则编译错误

    zx2:=20
    fmt.Println(zx2)
    
    20
    

    多变量的赋值

    var zx1,zx2,zx3 int
    fmt.Println(zx1,zx2,zx3)
    
    0 0 0
    
    var zx1,zx2,zx3=100,"asdas",77
    fmt.Println(zx1,zx2,zx3)
    
    100 asdas 77
    
    zx1,zx2,zx3:=100,"asdas",77
    fmt.Println(zx1,zx2,zx3)
    
    100 asdas 77
    
    var(
    	zx1="haa"
    	zx2="lala"
    	zx3=12
    )
    fmt.Println(zx1,zx2,zx3)
    
    haa lala 12
    

    go基本数据类型

    数字

    		-int(整数,含正负)
    			-int,int8,int16,int32,int64:占得大小不一样,
    				-int在32位机器上是int32,64位机器上是int64
    				-int8表示占一个字节(8个比特位)表示的范围是:正负2的7次方-1
    				-int16表示占两个字节(16个比特位)表示的范围是:正负2的15次方-1
    		-uint(正整数)
    			-uint,uint8 uint16 uint32 uint64
    				-uint在32位机器上是uint32,64位机器上是uint64
    				-表示范围不一样uint8:2的8次方-1
    		-float
    			-float64和float32 :表示小数点后范围不一样(,没有float)
    		-complex64(复数:科学运算用得到,开发中,基本不用)了解
    			-有实部和虚部
    		-byte
    			-uint8的别名
    		-rune
    			-int32的别名
    

    布尔(bool)

    		-真:true
    		-假:false
    

    字符串

    		-双引号包裹的:"xxx"
    		-反引号包裹,可以换行,   没有单引号,三引号
    

    常量

    //程序运行期间不允许修改
    //数据库,redis连接
    //const关键字 常量名 =常量值   赋值一次,不允许修改
    //const NAME  = "lqz"
    //const NAME  string = "lqz"
    

    函数

    go没有关键字参数一说,都按位置传,也没有默认参数

    //如果有个值不想接收,用_占位,但是不能全部为_,会报错
    _,a,_:=test(3,4)
    
    #定义(没有先定义再使用这一说)
    //func关键字  函数名(参数1 参数类型,参数2 参数类型)(){
    //函数体的内容
    //}
    
    
    #无参函数
    //func test()  {
    //	fmt.Println("我是test")
    //}
    
    /#带参函数
    //func test(a int,b int,c string) {
    //	fmt.Println(a+b)
    //	fmt.Println(c)
    //}
    
    #带参函数2
    //func test(a ,b int,c string) {
    //	fmt.Println(a+b)
    //	fmt.Println(c)
    //}
    
    #返回指定类型函数
    //func test(a,b int) int {
    //	//返回a+b的结果
    //	return a+b
    //}
    
    
    #返回多个值
    //func test(a,b int) (int,int,string) {
    //	//返回a+b的结果
    //	return a+b,a*b,"ok"
    //}
    
    #不定长函数
    //func test(z ...int)  {
    //	fmt.Println(z)
    //}
    

    //包的使用
    package main
    
    import (
    	"fmt"
    	"zx/package_test"
    )
    
    func main() {
    	fmt.Println("xxx")
    	package_test.Test()
    
    
    }
    
    /*1 你写的所有包必须在gopath的src路径下
    	包名一般是文件夹的名字,可以看package名
    	在外部包可以直接调用, 包名.方法名()
      2 包下的函数,如果大写字母开头,表示导出(可以给外部包使用),如果小写表示,只能给包内部使用
     */
    
    
  • 相关阅读:
    SDN3
    SDN2
    SDN1
    软工实践5
    2019 SDN上机第二次作业
    2019 SDN上机第一次作业
    软件工程实践2019第五次作业
    软件工程实践2019第四次作业
    软件工程实践2019第三次作业
    软件工程实践2019第二次作业
  • 原文地址:https://www.cnblogs.com/zx125/p/11357824.html
Copyright © 2011-2022 走看看