一:变量

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. PDO::errorInfo

    PDO::errorCode — 返回最后一次操作数据库的错误信息(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 public array PDO::e ...

  2. Guava基本工具--常见Object方法

    在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这 ...

  3. Linux的VMWare中Centos7的安装

    Windows平台下VMWare 14安装Centos 7 一.虚拟机硬件配置 1.选择创建新的虚拟机: 2.选择自定义(高级)进行自定义配置,单击下一步: 3.选择虚拟机硬件兼容性为默认,单击下一步 ...

  4. 好用的连接池-HikariCP

    在Springboot的发展历程中,默认的DataSource也从Springboot1.x的tomcat连接池到Springboot2.x的HikariCP.关于HikariCP的简单使用在配置多数 ...

  5. 【NOI2001】方程的解数 题解(dfs+哈希)

    题目描述 已知一个方程 k1*x1^p1+k2*x2^p2……+kn*xn^pn=0. 求解的个数.其中1<=x<=150,1<=p<=6; 答案在int范围内 输入格式 第一 ...

  6. 使用DEBUG 读取主引导记录

    实验环境:win7 64位(虚拟机) 由于此版本不能直接在命令行使用DOS,需要下载相关软件,参考https://www.cnblogs.com/caishunzhe/p/12823201.html ...

  7. Spring 中的反射与反射的原理

    作者:DeppWang.原文地址 在造轮子:实现一个简易的 Spring IoC 容器一文中提到 Spring 在创建 Bean 实例和依赖注入时使用了反射,本文来具体分析一下 Spring 中的反射 ...

  8. kubeadm部署1.17.3[基于Ubuntu18.04]

    基于 Ubuntu18.04 使用 kubeadm 部署Kubernetes 1.17.3 高可用集群 环境 所有节点初始化 # cat <<EOF>> /etc/hosts ...

  9. 安装Scrapy过程中遇到的几个问题总结

    安装Scrapy 1.https://www.lfd.uci.edu/~gohlke/pythonlibs/下载 Twisted 安装 Twisted-19.10.0-cp37-cp37m-win_a ...

  10. git使用-远程仓库(github为例)

    1.登录github(没有先注册账号) 2.settings>SSH and GPG keys>New SSH key Title(自己填写即可) key需要git命令生成 ssh-key ...