IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Go语言学习第1关 -> 正文阅读

[开发工具]Go语言学习第1关

1. Mac下用VsCode配置Go语言环境

  • 官网下载Go语言包 命令行中使用go version命令查看下载的go版本 使用go env查看go相关环境
  • 进入VsCode下载Go拓展 新建.go文件 按推荐install相关依赖即可(使用手机热点或科学上网)
  • 编辑好基础go文件 使用 go run … 运行

go run 时报错:package command-line-arguments is not a main package ?

package main //packge main即可 包名不一定和文件夹同名

import "fmt"

func main() {

fmt.Println("hi golang")

}

2. fmt包 Print相关 注释 定义变量

注意看Print Println Printf三者区别以及变量定义方法

package main

import "fmt"

func main() {
	fmt.Println("hi golang","hi dou")
	fmt.Print("hi golong","hi dou")

	var a = "aaa"
	fmt.Printf("%v",a)
	var b int
	b = 1
	fmt.Printf("%v",b)
	//短变量声明法 只能用于函数内部 不能作为全局变量
	c := 5
	fmt.Printf("%v",c)
//hi
/*
hi
hi
*/
}

hi golang hi dou
hi golonghi douaaa15%

go语言中变量声明必须使用

3. 变量常量命名规则

命名规范不赘述
注意大小写要区分开即可
定义变量基本方法看上节
以下是多变量声明 匿名变量

package main

import (
	"fmt"
)

func main() {
	fmt.Println("hi golang")
	
	//一次声明多个变量
	var(
		a string
		b int
	)
	a = "a"
	b = 1
	fmt.Println(a,b)
	c,d := "s",1
	fmt.Println(c,d)
	
	//匿名变量不占命名空间 不占内存 不存在重复声明
	user,_ := getUser()
	fmt.Println(user)
	
	const PI = 3.14
	fmt.Println(PI)

	//iota计数器只在常量里使用
	const(
		n1 = 100
		n2
		n3 = iota
		_
		n4
	)
	/*
	100 100 2 4
	*/
}
func getUser()(string,int){
	return "zhangsan",10
}

go fmt … 格式化文档

4. 数据类型–整型

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var num int8 = 10 //130? error
	fmt.Printf("%T\n",num)
	fmt.Println(unsafe.Sizeof(num))
	/*
	int8 -127 128 1Byte
	uint8 0 255 1Byte
	int16 -2^15 2^15-1 2Byte
	*/
}

5. 基本数据类型–浮点型 布尔型

bool类型与0 1不能替换

package main

import (
	"fmt"
	"unsafe"
)

func main() {
	var num int8 = 10 //130? error
	fmt.Printf("%T\n",num)
	fmt.Println(unsafe.Sizeof(num))
	/*
	int8 -127 128 1Byte
	uint8 0 255 1Byte
	int16 -2^15 2^15-1 2Byte
	*/
	var a float32 = 3.12   //4Byte  float64 8Byte
	fmt.Printf("%v -- %f",a,a)
	//64位操作系统浮点数默认是float64
}

6. 基本数据类型–字符串类型

package main

import (
	"fmt"
	"strings"
)

func main() {
	//多行字符串
	s := `hi
	golang`
	
	fmt.Println(s)

	str := "dou"
	fmt.Println(len(str))

	str1 := "123-456-789"
	slice :=strings.Split(str1,"-")
	fmt.Println(slice) //返回切片
	str2 := strings.Join(slice,"*")
	fmt.Println(str2)

	//其他方法用时再查
}

7. 数据类型–byte rune

package main

import "fmt"

//字符属于int类型

func main(){
	a := 'a'
	fmt.Printf("%v -- %c",a,a) //97 a
	//直接输出byte得码值 %c得字符

	/*
	uint8 即byte类型 代表了ACSII中的一个字符
	rune 实际上是int32 代表一个UTF-8字符
	一个汉字占3字节 一个字母占1字节
	*/

	s := "你好 golang"
	for _,v := range s{  //range遍历当rune时才能用
		fmt.Printf("%v %c\n",v,v)
	}

	s1 := "hi golang"
	str1Arr := []byte(s1)
	str1Arr[0] = 'g'
	fmt.Println(string(str1Arr))

	s2 := "你好 golang"
	str2Arr := []rune(s2)
	str2Arr[0] = '我'
	fmt.Println(string(str2Arr))
}

8. 运算符以及位运算符

余数 = 被除数-(被除数/除数)?除数
自增自减运算不能作为运算符 只能作为语句单列一行 无前++ - -
其他很简单 不赘述

9. if else for

package main

import "fmt"

func main() {
	//打印100以内的偶数
	for i:=1;i<=100;i++{
		if i%2 ==0{
			fmt.Printf("%d ",i)
		}
	}
	fmt.Println()
	//打印九九乘法表
	for i:=1;i<=9;i++{
		for j:=1;j<=i;j++{
			fmt.Printf("%v*%v=%v\t",i,j,i*j)
		}
		fmt.Println()
	}
}

10. for range switch case

var arr = []string{"a","b","c"}
	for k,v := range arr{
		fmt.Println(k,v)
	}
	var n = 2
	switch n {
	case 1,2,3:
		fmt.Println("g")
		fallthrough
	case 4,5,6:
		fmt.Println("m")
		break
	default:
		fmt.Println("error")
	}

11. continue break goto

continue break较简单 不赘述
break也可以配合label使用

var age = 24
	if age <= 30{
		fmt.Println("a")
		goto label
	}
	fmt.Println("b")
label:
	fmt.Println("c")

12. 数组

package main

import "fmt"

func main() {
	//各种初始化方法
	var arr1 [3]int
	var arr2  = [3]int{1,2,3}
	arr3 := [3]string{"a","b","c"}
	var arr4 = [...]int{1,2,3,4,5,6}
	arr5 := [...]int{1:1,5:3}
	fmt.Println(arr1,arr2,arr3,arr4,arr5)
	//数组遍历
	arr6 := [...]string{"a","b","c"}
	for k,v := range arr6{
		fmt.Println(arr6[k],v)
	}
	//数组和基本数据类型都是值类型 其他为引用类型
	//数组展示 值只是简单复制 不会互相影响
	var arr7 = [...]int{1,2,3}
	arr8 := arr7
	arr7[0] = 0
	fmt.Println(arr7,arr8)
	//切片演示 改变arr0 arr9随之改变 将arr9的地址指向arr0
	var arr0 = []int{1,2,3}
	arr9 := arr0
	arr0[0] = 0
	fmt.Println(arr0,arr9)

	//多维数组
	var arrr = [3][2]int{{1,2},{3,4},{5,6}}
	fmt.Println(arrr[2][1])
}

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:15:37  更:2022-09-24 21:19:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:54:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码