前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发外包--Golang 熟练教程(从零开始学GO)

开发外包--Golang 熟练教程(从零开始学GO)

原创
作者头像
Godev
修改2023-07-31 19:26:39
5390
修改2023-07-31 19:26:39
举报
文章被收录于专栏:Godev

golang特点

goroutine:性能极高(占用内存小,并发数多) 运行时直接打包代码:不依赖任何环境即可执行Hello World

代码语言:txt
复制
package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

variable

代码语言:txt
复制
package main

import "fmt"

func main() {
	var username, sex string
	username = "张鹏"
	sex = "男"
	fmt.Println(username)
	fmt.Println(sex)
	// 方法一
	var num int = 100
	fmt.Println(num)
	// 方法二
	var num2 int
	num2 = 200
	fmt.Println(num2)
	num3 := 300
	fmt.Println(num3)
}

variable multiple

代码语言:txt
复制
package main

import "fmt"

func main() {
	var username, sex string
	username = "张鹏"
	sex = "男"
	fmt.Println(username)
	fmt.Println(sex)
	// 方法一
	var num int = 100
	fmt.Println(num)
	// 方法二
	var num2 int
	num2 = 200
	fmt.Println(num2)
	num3 := 300
	fmt.Println(num3)
}

constant

代码语言:txt
复制
package main

import "fmt"

func main() {
	const const_num = 100
	fmt.Println("这是一个常量:", const_num)
	// 变量1
	var num1 int
	num1 = 100
	// 变量2
	num2 := 200
	fmt.Println("这是一个变量:", num1, num2)
}
[zhangpeng@27ops constant]$ go run const.go
这是常量: 100
这是变量: 200
[zhangpeng@27ops constant]$

init and main

代码语言:txt
复制
package main

import "fmt"

var log string

// go语言执行的函数入口,所有函数运行都是从main函数开始的
func main() {
	fmt.Println("this is main function")
}

func init() {
	log = "log对象"
	fmt.Println("this is init function", log)

}
[zhangpeng@27ops init_main]$ go run init_main.go
this is init function
this is  main function
[zhangpeng@27ops init_main]

call from main function

代码语言:txt
复制
package main

import "fmt"

var init_func string
var main_func string

func main() {
        main_func = "main function"
        fmt.Println("1th function,this is", main_func)
        sayhi()
}

func init() {
        init_func = "init function"
        fmt.Println("2th function,this is", init_func)
}

func sayhi() {
        fmt.Println("3th function,call from main function")
}

[zhangpeng@27ops init_main]$ go run init_main.go
2th function,this is init function
1th function,this is main function
3th function,call from main function
[zhangpeng@27ops init_main]$

call from init function

代码语言:txt
复制
package main

import "fmt"

var init_func string
var main_func string

func main() {
        main_func = "main function"
        fmt.Println("1th function,this is", main_func)
        sayhi()
}

func init() {
        init_func = "init function"
        fmt.Println("2th function,this is", init_func)
        sayhi2()
}

func sayhi() {
        fmt.Println("3th function,call from main function")
}

func sayhi2() {
        fmt.Println("4th function,call from init function")
}
[zhangpeng@27ops init_main]$ go run init_main.go
2th function,this is init function
4th function,call from init function
1th function,this is main function
3th function,call from main function
[zhangpeng@27ops init_main]$

type of int

代码语言:txt
复制
package main

import (
	"fmt"
	"reflect"
	"unsafe"
)

func main() {
	// 整型数值
	var (
		a1 int
		b1 int8
		c1 int16
		a2 int32
		b2 int64
	)
	a1 = 4
	b1 = 100
	a2 = 1000
	b2 = 1000
	fmt.Println(a1)
	fmt.Println(b1)
	fmt.Println(c1)
	fmt.Println(a2)
	fmt.Println(b2)
	// 查看数据类型方法一:reflect.TypeOf(a)
	fmt.Println(reflect.TypeOf(a1))
	// 查看数据类型方法二:使用printf %T类型 %v值
	// %s 打印字符串 %d打印数值
	fmt.Printf("a: %T %v \n", a1, a1)

	// 打印字节数
	fmt.Println("字节长度", unsafe.Sizeof(b2))
}
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_numbers_go.exe
4
100
0
1000
1000
int
a: int 4 
字节长度 8

Process finished with the exit code 0

type of bool

代码语言:txt
复制
package main

import (
	"fmt"
	"unsafe"
)

func main() {
	br := true
	var b3 = false
	fmt.Println(br, b3)

	// 打印字节数
	fmt.Println(unsafe.Sizeof(br))
}

C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_data_bool_go.exe
true false
1

Process finished with the exit code 0

string

代码语言:txt
复制
// study string
package main

import "fmt"

func main() {
        s1 := "单个字符串"
        s2 := `
第一个字符串
第二个字符串
第三个字符串
`
        fmt.Println(s1)
        fmt.Println(s2)
}

[zhangpeng@27ops string]$ go run string_demo.go
单个字符串

第一个字符串
第二个字符串
第三个字符串

[zhangpeng@27ops string]$

slice

代码语言:txt
复制
[zhangpeng@27ops slice]$ cat string_slice_for.go
package main

import "fmt"

func main() {
        v := []string{"bj", "sh", "sz"}
        for i := 0; i < len(v); i++ {
                //fmt.Println(i)
                fmt.Println(i,v[i])
        }
}
[zhangpeng@27ops slice]$

[zhangpeng@27ops slice]$ go run string_slice_for.go
0 bj
1 sh
2 sz
[zhangpeng@27ops slice]$

map

代码语言:txt
复制
package main

import "fmt"

func main() {
	/*
		map是一种无序的基于key-value的数据结构
		定义一个map字典
	*/
	// [string]:表示key的数据类型
	// string:表示value值的数据类型
	userInfo := map[string]string{
		"张鹏": "18",
		"性别": "男",
	}
	fmt.Println(userInfo)
	/*
		判断一个key是否在map中
	*/
	val, ok := userInfo["张鹏"]
	fmt.Println(val, ok)
	val, user := userInfo["zhangpeng"]
	fmt.Println(val, user)
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • variable
  • variable multiple
  • constant
  • init and main
    • call from main function
      • call from init function
        • type of int
          • type of bool
            • string
            • slice
            • map
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档