go语言基础实例
一:变量
1)变量声明
func main() {
var v1 int
var v2 int
//一次声明多个变量
var (
v3 int
v4 int
)
//变量最开始会有一个零值
fmt.Println(v1,v2,v3,v4)
}
打印效果:

2)变量初始化
package main import (
"fmt"
"reflect"
)
func main(){
//1 直接初始化并指定数据类型
var v1 int =
//2 直接初始化
var v2 =
//3 := 声明变量及初始化
v3 :=
//利用反射,查看v的类型
fmt.Println("v3类型是:",reflect.TypeOf(v3))
fmt.Println(v1,v2)
}
运行效果:

3)变量赋值
package main import "fmt"
func main() {
//直接赋值
var v1 int
v1 =
//2 声明变量并赋值
i :=
//3多重赋值
var v2,v3,v4 int
v2,v3,v4=,,
fmt.Println(v1,v2,v3,v4,i)
}
运行效果:

4)匿名变量 (注:_ 代表特殊的变量名,作用是占位)
import "fmt" //(int,string) 指的是返回值类型
func test() (int,string){
return ,"够浪"
}
//调用函数
func main(){
_,s :=test() //_ 表示占位 所以打印结果只有一个参数
fmt.Println(s)
}
运行效果

二:常量与枚举
1)声明常量
package main import "fmt"
//声明常量
const filename = "abc.txt"
func consts() {
const (
filename = "abc.txt"
a,b = ,
)
//究竟原则
fmt.Println(filename)
}
func main() {
consts() }

2) iota 常量生成器
package main
import "fmt"
func enums2(){
const (
python =iota
golang
java
)
fmt.Println(python,golang,java)
}
func main(){
enums2()
}
运行效果

iota参与运算(位运算原理:参考https://studygolang.com/articles/6657)
package main
import "fmt"
func enmus3(){
const (
//位运算
b = <<(*iota)
kb
mb
gb
tb
pb
)
fmt.Println(b,kb,mb,gb,tb,pb)
}
func main(){
enmus3()
}

3)枚举
package main import "fmt"
//定义枚举类型
func enums() {
const (
python =
golang =
java =
)
fmt.Println(python,golang,java)
} func main() {
enums()
}

三: 基本数据类型
1)整型
package main
import (
"fmt"
"reflect"
)
func main(){
var v1 int32
v1=
v2 :=
fmt.Println(v1,v2)
//默认推算类型是int
fmt.Println(reflect.TypeOf(v2))
}
运行效果

2)浮点型
package main
import (
"fmt"
"reflect"
)
func main(){
var f1 float32
f1 =
f2 := 12.0
fmt.Println(f1)
fmt.Println(reflect.TypeOf(f2))
}
运行效果

3)布尔类型
package main
import (
"fmt"
"reflect"
)
func main(){
var v1 bool
v1 = true
v2 :=(==)
fmt.Println(v1,v2)
fmt.Println(reflect.TypeOf(v2))
}
运行效果

4)byte字符型
package main
import "fmt"
func main(){
var ch byte
ch='a'
fmt.Println(ch)
fmt.Printf("ch=%c",ch)
}
5)字符串
package main
import "fmt"
func main(){
var str string
str ="abc"
fmt.Printf(str)
fmt.Println()
str2 := "hello mike \n \r 测试"
fmt.Println(str2)
}
三: fmt 包的使用
1)格式说明


2) 输出
package main
import "fmt"
func main(){
a :=
//%b是二进制
fmt.Printf("a = %b\n" ,a)
//只输出一个%
fmt.Printf("%%\n") //字符串
ch := 'a'
fmt.Printf("ch = %c, %c\n",ch,) //浮点类型
f := 3.14
//%g 紧凑格式
fmt.Printf("f = %f,%.g\n" ,f ,f) str := "hello.go"
fmt.Printf("str=%s\n",str) }
3)输入
package main
import "fmt"
func main(){
var v int
fmt.Println("请输入数字")
fmt.Scan(&v)
fmt.Println("v = ",v)
}
运行效果

4)类型别名
package main import (
"fmt"
"reflect"
) func main(){
//int类型取个别名
type myint int
var i myint =
fmt.Println(reflect.TypeOf(i))
}
运行效果

5)类型转换
package main
import "fmt"
func goo() {
var ch byte = 'a'
var i int = int(ch)
fmt.Println(i)
}
func main(){
goo()
}
四:流程控制
1)选择结构 :if else 语句
package main import (
"fmt"
"io/ioutil"
)
//第一种写法
func main(){
const filename ="abc.txt"
//ioutil.ReadFile读文件
contents,err := ioutil.ReadFile(filename)
if err != nil{
fmt.Println(err)
}else {
fmt.Printf("%s\n",contents)
}
//第二种写法
if contents,err :=ioutil.ReadFile(filename);err!=nil{
fmt.Println(err)
}else{
fmt.Printf("%s\n",contents)
} }
2)switch语句
package main import (
"fmt"
) //传入成绩,返回评分等级
func grade(score int) string {
// 定义字符串
g := ""
// go语言switch自动每一句加了break
switch {
case score < || score > :
g = "输入错误"
case score < :
g = "不及格"
fallthrough
case score < :
g = "一般"
case score < :
g = "良好"
case score <= :
g = "优秀"
default:
g="XXX"
}
return g
} func main() {
fmt.Println(
grade(),
grade(),
grade(),
grade(),
grade(),
grade(),
grade(-),
)
}
2) 循环结果
package main import (
"fmt"
"time"
)
//死循环
func for1(){
for {
fmt.Println("日耳曼战车凉凉")
//睡一秒
time.Sleep(*time.Second)
}
}
func main() {
for1()
}
package main import (
"fmt"
"time"
)
//打印10次
func for2(){
for i :=; i<;i++{
fmt.Println("日耳曼战车凉凉",)
//睡500毫秒
time.Sleep(*time.Millisecond)
}
}
func main(){
for2()
}
package main import (
"fmt"
"time"
) func for3(){
for i :=;i<;i++{
if i%=={
fmt.Println("爱阿根廷")
}else if i% == {
fmt.Println("爱战车")
}else{
fmt.Println("更爱天台")
}
time.Sleep(*time.Millisecond)
}
}
func main(){
for3()
}
4)range(r然哥)
package main
import "fmt"
func main(){
s := "abc"
//接收下标,通过下标取值
for i :=range s{
fmt.Printf("下标=%d,值=%c\n",i,s[i])
}
//直接都接收到
for i,c := range s{
fmt.Printf("下标=%d,值=%c\n",i,c)
}
for _,c :=range s {
fmt.Printf("值=%c\n",c)
}
}
5)跳转语句(break和continue)
package main
import "fmt"
func main(){
for i :=;i<;i++{
if i=={
//break 终止并退出循环
continue //终止本次循环进入下次循环
}
fmt.Println(i)
}
}
goto
package main
import "fmt"
func main(){
for i :=;i<;i++{
fmt.Println(i)
//goto必须跳转到方法内
goto LABEL2
}
fmt.Println("程序结束")
LABEL2:
fmt.Println("程序over")
}
go语言基础实例的更多相关文章
- Java实例 Part2:Java语言基础
Part2:Java语言基础 ** Example01:从控制台接收输入字符 ** 运行结果: 实现代码: import java.util.Scanner; public class Example ...
- 【Java初探实例篇01】——Java语言基础
示例系列,将对每节知识辅以实际代码示例,通过代码实际编写,来深入学习和巩固学习的知识点. IDE:intellij IDEA: 语言:Java 本次示例:Java语言基础知识的应用. 创建包day_4 ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例
前言 继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告.下一篇为HTTP接口实战(国家气象局接口自动 ...
- C语言基础回顾
第一章 C语言基础 1. C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...
- python基础——实例属性和类属性
python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- php面试题之三——PHP语言基础(基础部分)
三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...
- Object Pascal 语言基础
Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...
随机推荐
- CF R 639 div2 F Review 贪心 二分
LINK:Résumé Review 这道题让我眼前一亮没想到二分这么绝. 由于每个\(b_i\)都是局部的 全局只有一个限制\(\sum_{i=1}^nb_i=k\) 所以dp没有什么用 我们只需要 ...
- Java主类的装载
在JavaMain()函数中调用LoadMainClass()函数加载Java主类.LoadMainClass()函数的实现如下: /* * Loads a class and verifies th ...
- 记录一次线上实施snmp
公司要实施一个部级的项目,我们公司的提供的产品要对接下客户的一个平台监控平台,该监控平台使用snmp,我们公司的产品不支持snmp,所以由我负责在现网实施snmp,记录这次现网 一.生成编译规则 1. ...
- Linux的VMWare中Centos7文件权限管理chown 和 chmod
文件管理 chown chmod 1./根目录下目录功能划分 /boot/ 存放系统启动程序菜单及核心 --可以单独使用文件系统 /etc/ 存放系统中所有配置文件 /bin/ ...
- 使用ST-Link下载程序出现Error:Flash Download Failed-“Cortex-M3“ 解决详细步骤(附图)
我一直用stm32 f407开发. 最近要学mqtt与阿里云联网之类的课程,因为没有做过,所以网上搜了一遍,结果全是stm32 f103c8t6的例程. 后来我就搬出我的f103最小系统版 (这个就为 ...
- django--各个文件的含义
当你创建项目或者应用后你是不是发现多了很多个文件,现在我们来看看各代表什么意思 与你项目名相同的文件夹:是项目的管理功能目录,这个目录的名称因用户所创建的项目名称的不同而不同 在该目录下还有四个文件: ...
- iOS开发多线程在实际项目中的运用
实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行. 今天我们就来聊聊多线程在实际项目中的运用. 我们先来看看多线程的基础知识: 1.多线程的原理: 同一时间,CPU只能处理 ...
- CRF
- CTFhub-WEB前置-http协议闯关
前情提要: 在渗透学习过程中,web的基础知识很重要,在这里通过long long ago之前学习的http基础,并结合网上的CTFhub--WEB前置之http协议闯关,对web基础知识进行加固并查 ...
- Typora markdown代码块显示序号
打开偏好设置,找到代码块 打开显示行号 然后关闭Typora重新打开 此时代码块就有行号了