一:变量

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语言基础实例的更多相关文章

  1. Java实例 Part2:Java语言基础

    Part2:Java语言基础 ** Example01:从控制台接收输入字符 ** 运行结果: 实现代码: import java.util.Scanner; public class Example ...

  2. 【Java初探实例篇01】——Java语言基础

    示例系列,将对每节知识辅以实际代码示例,通过代码实际编写,来深入学习和巩固学习的知识点. IDE:intellij IDEA: 语言:Java 本次示例:Java语言基础知识的应用. 创建包day_4 ...

  3. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  4. APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例

    前言 继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告.下一篇为HTTP接口实战(国家气象局接口自动 ...

  5. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

  6. python基础——实例属性和类属性

    python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...

  7. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  8. php面试题之三——PHP语言基础(基础部分)

    三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...

  9. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

随机推荐

  1. 剑指 Offer 52. 两个链表的第一个公共节点

    题目链接 题目描述: 我的题解: 方法一:双指针法 思路分析: 声明两个指针p1,p2 分别指向链表A.链表B. 然后分别同时逐结点遍历 当 p1 到达链表 headA 的末尾时,重新定位到链表 he ...

  2. CSMA/CD协议(载波侦听多路访问/碰撞检测) 最小帧长理解

    以下的帧长有的是指帧的时间长度,帧的时间长度=  帧长/传输时延

  3. ios 版本更新提示-硬更新/软更新

    实现: 强制更新:每次弹框 非强制更新:一天提示一次 代码如下: 步骤一: 将检测更新写到APPDelegate的applicationDidBecomeActive中 步骤二: 检测是否需要更新 步 ...

  4. Windows包管理工具-Chocolatey

    Chocolatey是一款专为Windows系统开发的.基于NuGet的包管理器工具,类似于Node.js的npm,MacOS的 brew,Ubuntu的 apt-get,简称为 choco. Cho ...

  5. .NETCore微服务探寻(三) - 远程过程调用(RPC)

    前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...

  6. List集合遍历时修改元素出现并发修改异常总结

    什么是并发修改异常: 当我们在遍历实现了collection接口与iterator接口的集合时(List.Set.Map), 我们可以通过遍历索引也可以通过迭代器进行遍历.在我们使用迭代器进行遍历集合 ...

  7. 尝试Access数据库注入实验

    靶场环境:https://www.mozhe.cn/bug/detail/82 首先http://219.153.49.228:49543/new_list.asp?id=1 order by 4 到 ...

  8. Integer.valueOf源码分析

    1. 引言 在牛客网上看到这样一道题目,判断一下打印的结果 public static void main(String[] args){ Integer i1 = 128; Integer i2 = ...

  9. Consul服务治理发现学习记录

    Consul 简介 Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用.限流.熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便.它提供了一个功 ...

  10. .NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作

    Avalonia 是一个跨平台的 .NET UI 框架,支持 Windows.Linux.Mac OSX... (以及Android  IOS soon..) 本篇主要介绍Avalonia开发过程和L ...