Go语言入门1

· · 个人记录

C、C++、Pascal大家都会,Python已经烂大街,Java我又不熟,只能写Go了

本节课讲解输入输出、变量常量。

前置知识

C++或Pascal

C几乎没人用了吧

1 Hello World

先上代码再讲。

给C党看的:

package main
import "fmt"
func main(){
    fmt.Printf("Hello World!\n")
}

P党:

package main
import "fmt"
func main(){
    fmt.Print("Hello World!\n")
}

一步一步分析。

首先,package main和import "fmt"是程序必备的,记住就好了。我才不会告诉你我是不会

然后,func main(){}相当于C++中的int main(){},Pascal中的begin end.。好,懂了吧。

震(jian)撼(dan)人(dao)心(bao)的输出来了!

C党把fmt.Printf当作printf用,P党把fmt.Print当作write用,把fmt.Println当作writeln用,别的基本都一样(本人才疏学浅,不知道Pascal的格式化输出怎么弄,大佬们自己尝试去)。

所以上面的代码等同于:

package main
import "fmt"
func main(){
    fmt.Println("Hello World!")
}

但还有一个重点:Go语言的语句之间没有分号!!!

(另外还有个问题,fmt.Scanf有时会读入错误,我至今不知道为什么,还是少用吧)

2 数据类型

上表:

Go C++ Pascal
int8 / shortint
int16 short interger
int32 int longint
int64 long long int64
uint8 / byte
uint16 unsigned short word
uint32 unsigned int dword
uint64 unsigned long long qword
float32 float real
float64 double double
int int longint
uint unsigned int dword

(Go还有complex,但我没用过)

3 变量

依旧先上代码。

C党:

package main
import "fmt"
var a,b int32
func main(){
    fmt.Scanf("%d%d",&a,&b)
    fmt.Printf("%d\n",a+b)
}

P党:

package main
import "fmt"
var a,b int32
func main(){
    fmt.Scan(&a,&b)
    fmt.Print(a+b)
}

嗯,很明显,这是A+B的题解。(不要随便交,我又没交过)

先是输入。

C党把fmt.Scanf当作scanf用,P党把fmt.Scan当作read用,把fmt.Scanln当作readln用,别的基本都一样。Ctrl-C Ctrl-V大法好

然后,变量定义。

我们发现,变量定义的格式是

var identifier type

其中,identifier是变量名,type是变量类型。例如:

var abcdefg int32

也可以在定义时赋值:

var abcdefg int32=100

Go语言还支持自动类型推断,如:

var abcdefg=100

还有一种写法:

abcdefg:=100

注意点:

  1. Go语言禁止定义变量却不使用变量
  2. 只有未声明的变量才能用:=!正常的赋值号是=!

4 常量

把变量的var改成const,并在定义时赋值就好了。

dalao们:就好了?我:就好了。

第二篇教程:Go语言入门2