Go语言的学习开篇
前言
Go的生态不是非常好但是也够用了。本内容讲述最基本的东西
提示:本篇不讲述安装
一、运行Go语言和基本变量的声明
/*
运行go要main[这个是程序的主启动方法],当然还有testing(用于单个方法的测试)
package main
func main() {
}
*/
package main
/*
导包是的方式有种这两种
import "fmt"
或
import (
"fmt"
)
*/
func main() {
// 声明string
var str1 = "helloWord" // 没有char类型
fmt.Println("这个string",str1)
// 或者
str2 := "helloWord"
fmt.Println("这个string",str2)
// 声明int
var intType1 = 1 // 有int int8 int32 int64(默认) uint(无负数)也有8、32、64(默认)(输入最长的就19个位且19位的第一位不能为9)例子:(8999999999999999999)
fmt.Println("这个int",intType1)
// 或者
intType2 := 1
fmt.Println("这个int",intType2 )
// 声明float
var floatType1 = 0.1 // 如果 var floatType1 = 0.0 输出就为 0 没有double类型 有float32和float64(默认)
fmt.Println("这个float", floatType1)
// 或者
floatType2 := 0.1
fmt.Println("这个float", floatType2)
// 声明数组
var intArray1 = make([]int, 0) // 声明map make(map[T]T) 这个T表示任何类型(不是单单指基本类型,是任何类型【方法也是种类型】)
fmt.Println("这个int类型的数组", intArray1)
// 或者
intArray2 := make([]int, 0)
fmt.Println("这个int类型的数组", intArray2)
// 声明类
fmt.Println("类的声明和赋值----------------------------")
type cat struct {
name string
money int
}
// 给cat赋值
var p = cat{
name: "玛莎拉蒂",
money: 1,
}
/* 或
var p = cat{}
p.name = "玛莎拉蒂"
p.money = 1
或
p := cat{
name: "玛莎拉蒂",
money: 1,
}
或
p := cat{}
p.name = "玛莎拉蒂"
p.money = 1
*/
cat1 := cat{}
cat1.name = "玛莎拉蒂"
cat1.money = 1
fmt.Println("这个是一个cat类", cat1)
cat2 := cat1
cat2.name = "红旗"
fmt.Println("这个是一个cat类", cat1)
fmt.Println("这个是一个cat类", cat2)
// 声明指针与指针赋值(定义指针用* 取指针用&)
fmt.Println("声明指针与指针赋值----------------------------")
var cat3 *cat
cat3 = &cat{}
cat3.name = "大黄蜂"
cat3.money = 2
fmt.Println("这个是一个指针cat类型", cat3)
cat4 := cat3
cat3.name = "奔驰"
fmt.Println("这个是一个指针cat类型", cat3)
fmt.Println("这个是一个指针cat类型", cat4)
// 声明不可修改变量
fmt.Println("声明不可修改变量----------------------------")
const (
name = "宝马"
)
fmt.Println("这个是一个不可修改的name", name)
// 声明方法
fmt.Println("声明方法----------------------------")
run()
// 声明要传参方法
fmt.Println("声明要传参方法----------------------------")
intRun(2)
// 声明要传参且有返回值的方法
fmt.Println("声明要传参且有返回值的方法----------------------------")
fmt.Println("该方法返回值为:",returnIntRun(3))
// 声明在类里面的方法
fmt.Println("声明在类里面的方法----------------------------")
p := Cat{}
// 或 p := &Cat{}
p.objIntRun()
}
func run() {
fmt.Println("这个是一个run的方法")
}
func intRun(i int) {
fmt.Println("这个是一个要传参run的方法,传入的数值为:", i)
}
func returnIntRun(i int) int {
fmt.Println("这个是一个要传参run的方法,传入的数值为:", i)
return i
}
/*
或
func returnIntRun(p int) (i int) {
i = p
fmt.Println("这个是一个要传参run的方法,传入的数值为:", p)
return
}
*/
type Cat struct {
name string
mo string
}
func (c Cat) objIntRun() {
fmt.Println("这个是一个类方法")
}
/*
或
func (c *Cat) objIntRun() {
fmt.Println("这个是一个类方法")
}
*/
// 最后在这里说明一下如上面的Cat首字母大写的可以在其它文件调用它,如果首字母没有大写的就只能当前文件使用,在方法、类、变量中规则是一样的
二、for、if、else、else if
1.if、else、else if
// condition 为判定条件 == != 字符串判空 == "" 对象判空 == nil 、||(或) &&(且)
if condition {
}else if condition {
}else {
}
2.for
package main
func main() {
// 第一种for循环
for i := 1; i <=10; i++ {
fmt.Println(i)
}
// 第二种for循环 这个"3131"可以换成数组k为(在数组和字符串为下标,在map为key),v为值
for k,v :=range "3131" {
fmt.Println("这个是一个不可修改的name", v,i)
}
// 第三种for循环 为死循环【select{}这个可以保证程序不死】(没有 while)
for {
}
}
总结
a :=“继续学习,使我们的知识更加丰富。”;
fmt.Printf(“%s”,a);