go语法基础与其他语言对比学习(1)整合版 | 青训营

89 阅读3分钟

1.“hello world”

package main //声明文件所在的包,每个go文件必须有归属的包

import "fmt" //引入程序中需要用的包,为了使用包下的函数  比如:Println

func main () { 
    //main 主函数 程序的入口
    fmt.Println("Hello Golang!!") 
    //在控制台打印输出一句话,Hello Golang!!
}
  • 从以上代码块可知,go语言也是采用了import导入相应工具包或者工具类的方法来实现对基本功能的实现,类似Java和python、JavaScript。
  • 而c/c++则是用#include<头文件>的形式来导入,并且c/c++、java都需要在每句后加上分号,而go语言则和JavaScript一样不用。
  • 然后go语言也是严格采用了{}的形式,而不是像python一样采用了缩进的形式,有时候缩进真的很容易将人搞晕(尽管有IDE的提示)
  • 以下是go语言引入工具包的注意事项:
    • 文件以"go"为扩展名。
    • 程序的执行入口是main()函数。
    • 严格区分大小写。
    • 方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang的简洁性。
    • Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错定义的变量或者import的包如果没有使用到,代码不能编译通过。
    • 大括号都是成对出现的,缺一不可

2.变量

import "fmt"
func main(){
    //1.变量的声明
    var age int
    //2.变量的赋值
    age = 18
    //3.变量的使用
    fmt.Println("age = ", age);
    //声明和赋值可以合成一句:
    var age2 int = 19
    fmt.Println("age2 = ", age2);
    // var age int = 20;
    // fmt.Println("age = ", age);
    /*变量的重复定义会报错:
         # command-line-arguments
                .\main.go:16:6: age redeclared in this block
                        previous declaration at .\main.go:6:6
        */
    //不可以在赋值的时候给与不匹配的类型
    var num int = 12.56 //报错
    fmt.Println("num = ", num);
}

  • 从以上代码可知,go使用var这个关键词来声明,且把变量类型后置,后置这个行为是和其他几种我学过的语言所不一样的。至于声明赋值在一起的话,则和其他语言一模一样。
  • 而同样使用var这个关键词来声明变量的就是JavaScript(不过已经不推荐用var了,而使用了let),这点go和JavaScript是有相似点的。至于Java虽然也有var这个关键词,但在Java是IDE主要是根据前后语境来动态判断变量类型的。
  • 除此,go也是有四种变量定义方法:
    • 1.使用var 变量名字 类型且赋值
    • 2.使用var 变量名字 类型但不赋值,即默认值
    • 3.var 变量名字 且赋值 但没有指明类型,此时跟Java类似,var有根据赋值类型来动态判断变量类型的功能
    • 4.省略var,但赋值时使用:=,而不是=
    • 5.一次性定义多个变量 var{变量 赋值 变量 赋值}的形式,这点跟其他语言不同的是,需要使用{}。