Go语言基础

一、HelloWorld!

1、go的注释

// 这就是go的注释,和js一样

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

2、go的hello world

package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

3、go代码的结构

package main

每一个 Go 文件都应该在开头进行 package name 的声明(注意:只有可执行程序的包名应当为 main)。

包(Packages)用于代码的封装与重用,这里的包名称是main

import "fmt" 

我们引入了 fmt 包,用于在 main 函数里面打印文本到标准输出。

func main() {}

main 是一个特殊的函数。整个程序就是从 main 函数开始运行的。main 函数必须放置在 main 包中。{} 分别表示 main 函数的开始和结束部分。

fmt.Println("Hello World")

fmt 包中的 Println 函数用于把文本写入标准输出。

4、go代码的运行

有三种方法:

1 goland上点击右键  Run  就可以执行
(仅限于goland。 vs code等其他编辑器都没有)

2 先编译,再执行。
正统的用法(go是编译型语言):用命令
编译:go build 文件名.go  
编译,编译成当前平台的可执行文件  s1.exe
执行:s1.exe

3 编译并执行(在vs code上的命令窗口下执行go文件)
go run 文件名.go 
相当于2中的所有步骤一次执行,不产生可执行文件s1.exe

二、变量

定义变量注意点:

  1. 变量命名推荐用驼峰体。
  2. 变量定义了必须使用,否则报错(只有go要求这样)。
  3. 查看变量类型fmt.Printf("%T",变量)
  4. 变量要先定义再使用。
  5. 变量类型是固定的,不允许中途改变(静态语言)。
  6. 如果只是定义变量,必须指定类型,只能用第一种定义方式。
  7. 变量不允许重复定义。

1、定义变量的方法

1.1 全定义

var(关键字) 变量名 变量类型 = 变量值

var a int = 10
fmt.Println(a)  //10
fmt.Printf("%T",a)  //int

1.2 类型推导

var(关键字) 变量名 = 变量值

var a = 10
fmt.Println(a)  //10
fmt.Printf("%T",a)  //int

1.3 简略声明

变量名 := 变量值

a := 10.5
fmt.Println(a)  //10.5
fmt.Printf("%T",a)  //float64

2、声明变量不赋值

var b int
b = 10
fmt.Println(b)  // 0  int默认是0

3、声明多个变量

// 下面三种都可以
//var a,b,c int = 123,234,345
//var a,b,c = 123,234,345
var a,b,c = 123,234,"字符c"

fmt.Println(a,b,c)  //123 234 字符c
fmt.Printf("%T,%T,%T",a,b,c)  //int,int,string

4、变量不能重复定义

var a int
//var a = 90  // 重复定义×
//a := 80  // 重复定义×
a = 70 
fmt.Println(a)

//特殊情况
var a int
//var a, b = 10, 20  //不可以
a,b := 10,20  //可以
fmt.Println(a,b)

三、变量类型

Go 支持的基本类型:数字,字符串,布尔

1、bool(布尔类型)

true,false(都是小写)。

bool类型默认值为false。

//var a bool = true
var a = false
fmt.Println(a)

2、数字类型

2.1 有符号整型

int8, int16, int32, int64, int

rune:特指int32

int类型默认值为0。

-int8:表示能存储的长度 8个比特位,8个小格,一个格只能放0和1,能表示的范围是:正的2的七次方-1到,负的2的7次方-1

-int16,32...类推

-int:在32位机器上,表示int32,在64位机器上表示int64

-python中int类型,远远比go的int64大,大很多,因为python中一切皆对象,int对象包含方法数据,所以大。

2.2 无符号整型(正整数)

uint8, uint16, uint32, uint64, uint

byte:特指uint8

-uint8:范围:正2的8次方减一,有个0

2.3 浮点数(小数)

float32, float64

2.4 复数

高等数学用得到,实部和虚部。

complex64, complex128

3、字符串

字符串用双引号表示。反引号可以表示多行的字符串。

单引号和三引号不行。

单引号会将内部字符转成ascii码输出。

字符串类型默认值为""(空)

var name = "donner"
fmt.Println(name)  //donner

a := 'a'
fmt.Println(a)  //97
fmt.Printf("%T",a)  //int32

4、interface

interface{}是所有类型的鼻祖。所有类型都属于interface{} 类型。

它属于接口,匿名空接口

四、常量

必须用const关键字定义常量。

常量不能用:=赋值。

不能用

const name  = "trump"
//name = "asd" 
fmt.Println(name)

// 同时定义多个常量
const name,age  = "donner",18
fmt.Println(name,age)
posted @ 2020-03-29 21:35  Donner  阅读(168)  评论(0编辑  收藏  举报