zoukankan      html  css  js  c++  java
  • Go语言的学习之旅【二】

    一、语言结构

    //这个package是包声明(类似声明变量)
    //mian是被声明的包名(取main是go程序是可独立执行程序!!!
    //文件命名不需要一致,例如test.go文件含有package main也可以当作可独立执行程序
    package main 
    //fmt是这个程序引入的包,可以调用fmt的公共函数
    import "fmt"
    //优先于mian的执行函数
    func init(){
      fmt.Println("pre main exec init")
    } //可执行程序必须包含这个,基本启动会执行mian(),不过init()会比它提前执行 func main() {
      //调用fmt包中的Println函数,首字母是大写表示公共函数,若是小写,则只能为私有函数 fmt.Println("Hello, World!") }

     

    //下列的文件结构
    project
    --test.go
    mydir
    --mydir.go
    --mydir2.go
    //以上的结构,mydir中package命名要相同
    mydir.go的内容
    package mydir
    func MyFunc()(int){
      return 1;
    }
    mydir2.go的内容
    package mydir //这个package要跟mydir.go中命名相同,否则会编译错误
    func MyFunc2()(int){
      return 2;
    }

    发现go的src文件夹下,fmt的文件夹下存在package fmt跟package fmt_test(表示暂时不太懂)

    二、语法

      

    //1、行分隔符,可以使用;分号来进行分割(不推荐)
    fmt.Println('Hello,world!");fmt.Println("hello,world!")
    //直接换行分割
    fmt.Println('Hello,world!")
    fmt.Println("hello,world!")
    //2、注释
    // 单行注释
    /*
         多行注释
     */
    //3、标时符
    一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列
    例如:_abc, abc,abc123,a_13等
    不正确的标识符:
    1abc (数字不能第一位)
    case(go关键字不能用)
    a+b(运算符不能用)
    $abc(特殊字符也不可以)
    ...

     

    三、数据类型

      布尔型:bool

      整数型:int,int8,int16,int32,int64,uint8,uint16.uint32,uint64,uintptr(指针)

      浮点型:float32,float64,complex64,complex128

      其他:byte(与uint8类似),rune(与int32类似)

    四、变量

         var a int = 1
    	var b string = "欢迎来到go世界"
    	c := false // `:=` 这个是var c bool 声明+赋值
    	var d = 10 // var d 自适应声明赋值
    	var e bool //声明(不赋值,必须带上类型)
    	fmt.Println(a+d,"
    ",b,c,d,e)	//使用`+`号必须是相同的类型(
    	var v1 = 1
    	v1,v2 := 1,2 //使用`:=` 时必须有一个没被声明过的变量(这个写法...)
    	var(
    		f int
    		g bool
    	)
    	fmt.Print(f,g,v1,v2)//所有的变量都要被使用到,不然会报错(完全赞同,有时候经常弄个变量,最后没用了,都忘了删)
    	var z,x int = 1,2 //多个变量同类型声明赋值
    	var n,m = false,"ok" //多个变量不同类型声明赋值
    	fmt.Println(z,x,n,m)
    	var(
    		//i  这个批量声明赋值,不能不定义类型
    		j bool
    		k string = "adfsf"
    		l = false
    	)
    	fmt.Println(j,k,l,&z) //&z 取到这个z变量在内存中的地址类似c语言
    	_,o,p := numbers() // `_` 空白变量,不能被使用,可以理解第一个返回值默认丢弃
    	fmt.Println(o,p)
    

     五、总结

      语言结构,语法,数据类型,变量都跟其他语言差不多,包都定义有点特别,main命名作为独立可执行程序,同一个文件夹下package名要相同,否则会报错,按照文件夹来进行模块区分。

    语法中变量的定义格式相比java要少很多,数据类型变了下,int32类似带位数来表示大小,更加直观,还保留c的指针模式。

    总体还是挺容易理解,并没有特别特立独行都存在,大多数都是为了减少代码开发。继续探索,gogogo!

  • 相关阅读:
    文件读写,函数,元组和集合
    Python列表,字典和字符串操作
    linux grep程序输出 文本过滤
    prj坐标转换
    ubuntu 分卷解压中文乱码
    利用ssh 删除远程服务器文件
    git 提交
    linux 命令scp
    osgEarth编译——以VS2012为例
    GDAL2.0编译——32位和64位
  • 原文地址:https://www.cnblogs.com/zrl66/p/14062527.html
Copyright © 2011-2022 走看看