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
注意点:
- Go语言禁止定义变量却不使用变量!
- 只有未声明的变量才能用:=!正常的赋值号是=!
4 常量
把变量的var改成const,并在定义时赋值就好了。
dalao们:就好了?我:就好了。
第二篇教程:Go语言入门2