go入门——基础语法

go环境安装

1、安装

go官网:Downloads - The Go Programming Language (google.cn)

go中文网:Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com)

这里我是amd64位win10系统,所以我下载这个

请添加图片描述

下载完成之后安装到自己喜欢的目录就好。我选择的是D:\Environment\go

安装完成之后可以启动cmd检查安装是否成功,cmd界面输入go version之后会显示当前安装的go语言版本

2、配置环境变量

首先,在自己喜欢的地方创建一个目录goworks(这个目录用来存放以后我们创建的go项目)。我的是D:\Environment\GoWorks。这个目录下创建三个文件夹(当然也可以不用创建,go设置了一个默认的存放位置在c盘)
请添加图片描述
需要配置一个GOROOT(用来指定go的安装位置)和一个GOPATH(用来指定go项目的存放地址)
请添加图片描述

在系统变量中新建GOROOT和GOPATH,在用户变量中找到GOPATH并修改为我们指定的目录

最后在cmd中输入go env查看设置是否成功

请添加图片描述

使用开发工具GoLand

hello,world!

创建项目

用goland创建一个go的工程项目,选择路径为gopath的路径,然后在工程根目录中创建一个hello.go的文件

请添加图片描述

创建好之后,修改包名为main,一个go项目只有一个main包且只有一个main方法

package main

import "fmt"

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

cmd命令运行

进入hello.go所在的路径打开cmd,输入go run hello.go,cmd显示helloworld

goland运行

点击运行按钮

请添加图片描述

控制台正确显示helloworld就可以

如果报错,可能是模式的问题

请添加图片描述

打开cmd修改环境,go env -w GO111MODULE=off,再次输入go env查看第一行是否显示为off。然后再次运行。

基础语法

注释

单行注释

// 这是一个单行注释

多行注释

/*
这是一个多行注释
*/

变量

使用var来声明一个变量,后接变量名和变量类型

var name string = "123"

同时声明多个变量用一个var加上小括号,括号里直接定义变量

var (
   name    string
   address string
   age     int
)
//string默认值为空
//int默认值为0
/*
整型默认为0,浮点型默认为0.0
字符串默认为空
布尔类型默认为false
切片 函数 指针变量默认为null
*/

同时输出多个变量可以使用逗号直接隔开

fmt.Println(name, address, age)

go的变量命名也遵循驼峰命名规则

语法糖省略显示定义变量类型和var关键字(短变量定义)

name := "123"
age := 18
//这是编译器自动推到变量类型
  • 短变量定义需要在定义的时候显示的初始化
  • 不能指定数据类型
  • 只用用在函数内部

格式化输出

fmt.Printf("%T,%T", age, name)
//格式化输出,%T的意思是输出变量的类型
fmt.Printf("%p", &age)//输出变量的内存地址

变量交换

go语言可以更简便的实现两个变量值之间的交换

a := 100
b := 200
a, b = b, a//go语言自动实现两个变量之间的数值交换
fmt.Println(a, b)

匿名变量

匿名变量使用下划线_来表示,下划线被称为空白标识符,任何类型都可以赋值给他,任何赋值给他的变脸值都会被丢弃。匿名变量不占用空间,不分配内存

全局变量和局部变量

全局变量定义之后,局部变量可以在定义一次同名的变量,但在函数内使用变量时会优先使用局部变量

常量

使用const关键字定义常量。常量名一般使用大写表示,并且常量定义时可以省略数据类型(隐式定义)。

多常量定义

const a, b, c = 3.1415926, false, "12"

iota(常量计数器)

iota是go语言中比较特殊的。他是用来计算在枚举类型定义中常量定义了多少个,iota只需要被定义一次,然后每当常量被定义的时候,iota会自增1。在新一组常量的定义中,iota又会从0开始

const(
   a = iota
   b
   c
   d
)

数据类型

布尔型

默认为false,格式化输出打印类型使用%T,打印布尔类型的值%t

浮点型

默认保留6位小数,数据类型为float64,其中64指定了使用多少位来存储数据,位数越大,能够存储数据的范围越大,丢失精度的情况下四舍五入

数据类型转换

go不存在隐式数据类型转换,所有类型转换都必须显示声明。存在转换精度丢失

位运算符

运算符描述
&按位与
|按位或
^按位异或,不同为1,相同为0
&^位清空,a&^b,对b的每一位来说,如果是0,取a对应位置上的数值,如果为1则取0
<<左移,a<<b表示为a乘2的b次方。实际为a的二进制数整体左移b位,高位溢出则丢弃,低位补0
>>右移,同上除以2的b次方

使用键盘控制输入和输出

var a int
var b float64
//fmt.Scan(&a, &b) 普通的输入控制,只有输入了对应数量的值才会结束
//fmt.Scanf()格式化输入
fmt.Scanln(&a, &b) //输入,并且不管是否有值,只要回车就会结束
fmt.Println("a:", a)
fmt.Println("b:", b)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值