go语言基础总结

wangfeiaini · · 4649 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

// second
//以下代码不可以直接使用,go语言中凡是声明过的变量都要使用,否则会报错
//以下代码只是go语言基础总结,包括了从变量声明到switch分支
package main

import (
	"fmt"
)

//声明常量
const (
	i            = 0
	s     string = "Test"
	Start string = "go语言开始" //首字母大写的变量是公有的(待验证)
)

//声明一组全局变量
var (
	k    int
	s2   string
	flag bool
)

//枚举类型iota关键字,默认是0,每次自动增长1
const (
	p1 = iota //p1=0
	p2 = iota //p2=1
	p3        //p3=2
	p4        //p4=3
)

func testMap() {
	var mp map[string]int       //声明一个map
	mp2 := make(map[string]int) //map的另一种声明方式
	mp2["one"] = 1
	mp2["two"] = 2          //给map赋值
	fmt.Println(mp2["two"]) //将key two对应的值打印出来
	//map是无序的,每次打印都不一样,只能通过key获取。内置方法len返回map的key的数量
	mp2["one"] = 10 //将one 对应的值改为10
	m3 := mp2
	m3["two"] = 4                            //此时mp2的mp2["two"]变为4
	delete(mp2, "one")                       //删除key为one的元素
	rating := map[string]int{"1": 2, "2": 3} //初始化一个字典
}

//goto语句
func testGoto() {
	i := 0
Here: //声明一个跳转标签
	fmt.Println(i)
	if i < 10 {
		i++
		goto Here //跳转到标签处
	}
}

//for语句
func testFor() {
	var s [10]int
	for j := 0; j < len(s); j++ {
		s[j] = j //数组负责
	}
	for j := 0; j < len(s); j++ {
		fmt.Println(s[j]) //打印出数组的每一个值
	}
	//for+if语句
	for i := 0; i < 100; i++ {
		if i%3 == 0 && i%5 != 0 {
			fmt.Println("Fizz")
		} else if i%5 == 0 && i%3 != 0 {
			fmt.Println("Bizz")
		} else if i%15 == 0 {
			fmt.Println("FizzBizz")
		} else {
			fmt.Println(i)
		}

	}
	//打印出金字塔形的A
	for i := 1; i <= 100; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%s", "A")
		}
		fmt.Println()
	}
}

//遍历map
func eachMap() {
	mp2 := make(map[string]int) //map的另一种声明方式
	mp2["one"] = 1
	mp2["two"] = 2
	for k, v := range mp2 {
		fmt.Println("key:", k)
		fmt.Println("val:", v)
	}
	//只输出map的值
	for _, v := range mp2 {
		fmt.Println("val:", v)
	}
}

//switch语句
func testSwitch() {
	index := 4
	switch index {
	case 4:
		fmt.Println("hello 4")
		fallthrough //强制执行后面的语句
	case 5:
		fmt.Println("hello 5")
	default:
		fmt.Println("继续测试")
	}
}

//首字母大写的方法是公共方法,
func Test() {
	var arr [10]int //声明一个长度为10的整形数组
	arr[0] = 10     //赋值
	arr[1] = 20
	arr2 := [3]int{1, 2, 3}                              //声明一个长度为3的整形数组并赋值
	arr3 := [...]int{2, 3, 4}                            //动态声明一个数组
	doubleArray := [2][2]int{[2]int{1, 2}, [2]int{3, 4}} //声明一个二维数组
	easyDouble := [2][2]int{{1, 2}, {2, 3}}              //二维数组的另一种声明方式,内外类型一致
	var fslice []int                                     //声明一个切片,和数组相比去掉了长度
	sslice := []byte{1, 2, 3, 4}                         //声明并初始化一个切片
	tslice := arr2[0:2]                                  //切片包含数组arr2中的arr[0],arr[1],切片声明arr[n:m],包含的元素为从arr[n到arr[m-1]
	fmt.Println("测试")
}

//首字母小写的方法是私有方法
func test() {
	fmt.Println("测试")
}

 


有疑问加站长微信联系(非本文作者)

本文来自:ITEYE博客

感谢作者:wangfeiaini

查看原文:go语言基础总结

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4649 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传