GO语言基础(结构+语法+类型+变量)
GO语言基础(结构+语法+类型+变量)
Go语言结构
Go语言语法
Go语言类型
Go语言变量
Go 语言结构
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
package main import "fmt" func main() {
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}
- 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
- 下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
- 下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
- 下一行 /*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
- 下一行 fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。
- 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。
执行 Go 程序
- 打开编辑器如Sublime2,将以上代码添加到编辑器中。
- 将以上代码保存为 hello.go
- 打开命令行,并进入程序文件保存的目录中。
- 输入命令 go run hello.go 并按回车执行代码。
- 如果操作正确你将在屏幕上看到 "Hello World!" 字样的输出。
- 我们还可以使用 go build 命令来生成二进制文件:
package main import "fmt" func main()
{ // 错误,{ 不能在单独的行上
fmt.Println("Hello, World!")
}
Go 语言基础语法
fmt.Println("Hello, World!")
fmt.Println("yp:runoob.com")
- 1ab(以数字开头)
- case(Go 语言的关键字)
- a+b(运算符是不允许的)
package main
import "fmt"
func main() {
fmt.Println("Google" + "Runoob")
}
break
|
default
|
func
|
interface
|
select
|
case
|
defer
|
go
|
map
|
struct
|
chan
|
else
|
goto
|
package
|
switch
|
const
|
fallthrough
|
if
|
range
|
type
|
continue
|
for
|
import
|
return
|
var
|
append
|
bool
|
byte
|
cap
|
close
|
complex
|
complex64
|
complex128
|
uint16
|
copy
|
false
|
float32
|
float64
|
imag
|
int
|
int8
|
int16
|
uint32
|
int32
|
int64
|
iota
|
len
|
make
|
new
|
nil
|
panic
|
uint64
|
print
|
println
|
real
|
recover
|
string
|
true
|
uint
|
uint8
|
uintptr
|
var age int;
fruit=apples+oranges;
fruit = apples + oranges;
package main import (
"fmt"
) func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2020-12-31"
var url="Code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
}
Go 语言数据类型
序号
|
类型和描述
|
1
|
布尔型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
|
2
|
数字类型
整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
|
3
|
字符串类型:
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
|
4
|
派生类型:
包括:
(a) 指针类型(Pointer)
(b) 数组类型
(c) 结构化类型(struct)
(d) Channel 类型
(e) 函数类型
(f) 切片类型
(g) 接口类型(interface)
(h) Map 类型
|
序号
|
类型和描述
|
1
|
uint8
无符号 8 位整型 (0 到 255)
|
2
|
uint16
无符号 16 位整型 (0 到 65535)
|
3
|
uint32
无符号 32 位整型 (0 到 4294967295)
|
4
|
uint64
无符号 64 位整型 (0 到 18446744073709551615)
|
5
|
int8
有符号 8 位整型 (-128 到 127)
|
6
|
int16
有符号 16 位整型 (-32768 到 32767)
|
7
|
int32
有符号 32 位整型 (-2147483648 到 2147483647)
|
8
|
int64
有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
|
序号
|
类型和描述
|
1
|
float32
IEEE-754 32位浮点型数
|
2
|
float64
IEEE-754 64位浮点型数
|
3
|
complex64
32 位实数和虚数
|
4
|
complex128
64 位实数和虚数
|
序号
|
类型和描述
|
1
|
byte
类似 uint8
|
2
|
rune
类似 int32
|
3
|
uint
32 或 64 位
|
4
|
int
与 uint 一样大小
|
5
|
uintptr
无符号整型,用于存放一个指针
|
Go 语言变量
package main
import "fmt"
func main() {
var a string = "Runoob"
fmt.Println(a) var b, c int = 1, 2
fmt.Println(b, c)
}
package main
import "fmt"
func main() { // 声明一个变量并初始化
var a = "RUNOOB"
fmt.Println(a) // 没有初始化就为零值
var b int
fmt.Println(b) // bool 零值为 false
var c bool
fmt.Println(c)
}
- 数值类型(包括complex64/128)为 0
- 布尔类型为 false
- 字符串为 ""(空字符串)
- 以下几种类型为 nil:
package main import "fmt" func main() {
var i int
var f float64
var b bool
var s string
fmt.Printf("%v %v %v %q\n", i, f, b, s)
}
package main
import "fmt"
func main() {
var d = true
fmt.Println(d)
}
package main
import "fmt"
func main() {
f := "Runoob" // var f string = "Runoob" fmt.Println(f)
}
package main var x, y int
var ( // 这种因式分解关键字的写法一般用于声明全局变量
a int
b bool
) var c, d int = 1, 2
var e, f = 123, "hello"
func main(){
g, h := 123, "hello"
println(x, y, a, b, c, d, e, f, g, h)
}
package main import "fmt" func main() {
var a string = "abc"
fmt.Println("hello, world")
}
GO语言基础(结构+语法+类型+变量)的更多相关文章
- Swift语言指南(一)--语言基础之常量和变量
原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...
- GO语言的基本语法之变量,常量,条件语句,循环语句
GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...
- C#语言基础——结构体和枚举类型
结构体和枚举类型 一.结构体(struct) 结构类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要 ...
- C语言基础(6)-char类型
1. char常量.变量 使用单引号‘’引起来的就是char的常量 ‘a’是一个char类型的常量 “a”是一个字符串类型的常量 1是一个int型的常量 ‘1’是一个char型的常量 char a; ...
- C语言基础:两个变量交换值的方法
学习任何语言基础时,两个数值得交换是必须掌握的,下面是3种不同的方式(c语言) 方法一:利用数学的计算技巧 #include <stdio.h> int main() { , b = ; ...
- python基础入门语法和变量类型(二)
列表 列表是 Python 中使用最频繁的数据类型,它可以完成大多数集合类的数据结构实现,可以包含不同类型的元素,包括数字.字符串,甚至列表(也就是所谓的嵌套). 和字符串一样,可以通过索引值或者切片 ...
- C语言基础--结构体对齐,位域,联合体
结构体对齐 1--结构体对齐的原因与意义 许多计算机系统对基本数据类型的可允许地址做出了一些限制,要求某种类型的对象的地址必须是某个值K(通常是2,4,8)的倍数,而这个k则被称为该数据类型的对齐模数 ...
- C语言基础学习基本数据类型-变量和常量
变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...
- go语言基础之复合类型
1.分类 类型 名称 长度 默认值 说明 pointer 指针 nil array 数组 0 slice 切片 nil 引⽤类型 map 字典 nil 引⽤类型 struct 结构体 2.指针 指针是 ...
随机推荐
- argc 和 argv
转载请注明来源:https://www.cnblogs.com/hookjc/ 如果用C寫一般的命令列工具,常透過main函式的argc,argv來取得使用者所輸入的命令參數.int main(int ...
- 虫师Selenium2+Python_2、测试环境搭建
windows环境配置: 步骤: 安装python 官网下载http://www.seleniumhq.org/ https://www.python.org/downloads/windows/ 3 ...
- iOS组件化之-给自己的组件添加资源文件
在 podspec 中,利用 source_files 可以指定要编译的源代码文件.可是,当我们需要把图片.音频.NIB等资源打包进 Pod 时该怎么办呢? 1.如何把资源文件打包为.bundle文件 ...
- Spring5源码解析系列一——IoC容器核心类图
基本概念梳理 IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建.依赖,反转给容器来帮忙实现.我们需要创建一个容器,同时需要一种描述来让容器知道要创建的对象 ...
- rsync 与 inotify 的使用 & 实现实时同步备份
今日内容 rsync 内容详细 上一篇内容问题 1.yum源问题 2.VPN链接正常,但是没办法通过172 3.VPN链接时,出现了DNS错误 4.掩码不对 5.openvpn开启错误 复制的命令 1 ...
- Solution -「国家集训队」「洛谷 P2619」Tree I
\(\mathcal{Description}\) Link. 给一个 \(n\) 个点 \(m\) 条边的带权无向图,边有权值和黑白颜色,求恰选出 \(K\) 条白边构成的最小生成树. ...
- Kubeadm部署-Kubernetes-1.18.6集群
环境配置 IP hostname 操作系统 10.11.66.44 k8s-master centos7.6 10.11.66.27 k8s-node1 centos7.7 10.11.66.28 k ...
- 干掉Session?这个跨域认证解决方案真的优雅!
用户登录认证是 Web 应用中非常常见的一个业务,一般的流程是这样的: 客户端向服务器端发送用户名和密码 服务器端验证通过后,在当前会话(session)中保存相关数据,比如说登录时间.登录 IP 等 ...
- 单网口RFC2544测试——信而泰网络测试仪实操
一.测试拓扑 拓扑说明 测试仪一个端口和DUT一个端口相连 DUT假设是一台交换设备,它能够把测试仪发送的流量直接转发回来 注意:要求DUT必须能够把收到的流量环回出来,否则没有办法测试 二.测试思路 ...
- 还在争论WPS、Office哪个更好用?这款云办公工具才是真的香!
最近,金山WPS更新狠狠的刷了一波存在感.尤其是xlookup函数,着实是有被惊艳到,也让大家看到了国产办公软件的进步.甚至有人认为WPS已经超越了传统的办公软件--微软office.WPS的优点固然 ...