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 ...
随机推荐
- CentOS中配置NFS
https://www.cnblogs.com/yeungchie/ NFS是Network File System的缩写,即网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间 ...
- Ploya定理学习笔记
由于自己的作息极其不规律导致比赛被打爆了 但是有的时候状态其实还行. 关于Ploya定理其实特别有意思 这里粘一个[dalao的blog](https://blog.csdn.net/lyc16355 ...
- Spring的事务抽象
Spring提供了一致的事务管理抽象,该抽象能实现为不同的事务API提供一致的编程模型.无视我们使用jdbc.hibernate.mybatis哪种方式来操作数据,无视事务是jta事务还是jdbc事务 ...
- 022_go语言中的协程
代码演示 package main import "fmt" func f(from string) { for i := 0; i < 3; i++ { fmt.Print ...
- Python3中,map()函数、filter()函数、reduce()函数的比较
1.map(function,iterable):function为函数,或者lambda表达式,iterable是可迭代的序列,即对iterable中的每个item执行一遍function或者lam ...
- 2、适配器 adapter 模式 加个"适配器" 以便于复用 结构型设计模式
1.什么是适配器模式? 适配器如同一个常见的变压器,也如同电脑的变压器和插线板之间的电源连接线,他们虽然都是3相的,但是电脑后面的插孔却不能直接插到插线板上. 如果想让额定工作电压是直流12伏特的笔记 ...
- 远程服务器的管理工具SSH
1.SSH是什么? SSH:Secure Shell 安全外壳协议 建立在应用层基础上的安全协议 可靠,专为远程登录会话和其他网络服务提供安全性的协议 有效防止远程管理过程中的信息泄露问题 SSH客户 ...
- Java基础—控制流程语句(条件语句与循环结构)
与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程.Java的控制流程结构与C和C++的控制流程机构一样,只有很少的例外情况.没有goto语句,但break语句可以带标签,可以利用它实 ...
- leetcode刷题笔记-3. 无重复字符的最长子串(java实现)
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "ab ...
- Code Review 从失败中总结出来的几个经验
资深的程序员都知道 Code Review 可以对代码质量,代码规范,团队代码能力提升带来很大的提升,还有著名的技术专家"左耳朵耗子"也说过: 我认为没有 Code Review ...