GO 学习笔记

GO 学习笔记,第1张

概述helloworldpackagemainimport"fmt"funcmain(){/*这是我的第一个简单的程序*/fmt.Println("Hello,World!")}格式化字符串packagemainimport("fmt")funcmain(){//%d表示整型数字,%s表示字符串varstockcode=123var hello world
package mainimport "fmt"func main() {   /* 这是我的第一个简单的程序 */   fmt.Println("Hello, World!")}
格式化字符串
package mainimport (    "fmt")func main() {   // %d 表示整型数字,%s 表示字符串    var stockcode=123    var enddate="2020-12-31"    var url="Code=%d&endDate=%s"    var target_url=fmt.Sprintf(url,stockcode,enddate)    fmt.Println(target_url)}

package mainimport (    "fmt"    "os")type point struct {    x, y int}func main() {    p := point{1, 2}    fmt.Printf("%v\n", p)    fmt.Printf("%+v\n", p)    fmt.Printf("%#v\n", p)    fmt.Printf("%T\n", p)    fmt.Printf("%t\n", true)    fmt.Printf("%d\n", 123)    fmt.Printf("%b\n", 14)    fmt.Printf("%c\n", 33)    fmt.Printf("%x\n", 456)    fmt.Printf("%f\n", 78.9)    fmt.Printf("%e\n", 123400000.0)    fmt.Printf("%E\n", 123400000.0)    fmt.Printf("%s\n", "\"string\"")    fmt.Printf("%q\n", "\"string\"")    fmt.Printf("%x\n", "hex this")    fmt.Printf("%p\n", &p)    fmt.Printf("|%6d|%6d|\n", 12, 345)    fmt.Printf("|%6.2f|%6.2f|\n", 1.2, 3.45)    fmt.Printf("|%-6.2f|%-6.2f|\n", 1.2, 3.45)    fmt.Printf("|%6s|%6s|\n", "foo", "b")    fmt.Printf("|%-6s|%-6s|\n", "foo", "b")    s := fmt.Sprintf("a %s", "string")    fmt.Println(s)    fmt.Fprintf(os.Stderr, "an %s\n", "error")}
VIEw Code

 

Go语言变量
// 声明一个变量var IDentifIEr type// 一次声明多个变量var IDentifIEr1, IDentifIEr2 type

 

 Go语言常量
const IDentifIEr [type] = value

 

 

Go语言条件语句
switch var1 {    case val1:        ...    case val2:        ...    default:        ...}

 

 

package mainimport "fmt"func main() {   /* 定义局部变量 */   var grade string = "B"   var marks int = 90   switch marks {      case 90: grade = "A"      case 80: grade = "B"      case 50,60,70 : grade = "C"      default: grade = "D"     }   switch {      case grade == "A" :         fmt.Printf("优秀!\n" )          case grade == "B", grade == "C" :         fmt.Printf("良好\n" )            case grade == "D" :         fmt.Printf("及格\n" )            case grade == "F":         fmt.Printf("不及格\n" )      default:         fmt.Printf("差\n" );   }   fmt.Printf("你的等级是 %s\n", grade );      }
VIEw Code

 

 

Go语言循环语句
for init; condition; post { }for condition { }for { }

 

 

for key, value := range oldMap {    newMap[key] = value}
package mainimport "fmt"func main() {        strings := []string{"Google", "runoob"}        for i, s := range strings {                fmt.Println(i, s)        }        numbers := [6]int{1, 2, 3, 5}        for i,x:= range numbers {                fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)        }  }

 

 

数组
var variable_name [SIZE] variable_type

 

package mainimport "fmt"func main() {   var i,j,k int   // 声明数组的同时快速初始化数组   balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}   /* 输出数组元素 */         ...   for i = 0; i < 5; i++ {      fmt.Printf("balance[%d] = %f\n", i, balance[i] )   }      balance2 := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}   /* 输出每个数组元素的值 */   for j = 0; j < 5; j++ {      fmt.Printf("balance2[%d] = %f\n", j, balance2[j] )   }   //  将索引为 1 和 3 的元素初始化   balance3 := [5]float32{1:2.0,3:7.0}     for k = 0; k < 5; k++ {      fmt.Printf("balance3[%d] = %f\n", k, balance3[k] )   }}
VIEw Code

 

 

 

Go语言结构体
type struct_variable_type struct {   member deFinition   member deFinition   ...   member deFinition}

 

 

切片

内置类型切片(动态数组)

var slice1 []type = make([]type, len)也可以简写为slice1 := make([]type, len)

 

定义一个切片

声明一个未指定大小的数组

var IDentifIEr []type

使用make创建

var slice1 []type = make([]type, len)也可以简写为slice1 := make([]type, len)

 

len() 和 cap()

切片是可索引的,并且可以由 len() 方法获取长度。

切片提供了计算容量的方法 cap() 可以测量切片最长可以达到多少。

package mainimport "fmt"func main() {   var numbers = make([]int,3,5)   printSlice(numbers)}func printSlice(x []int){   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)}
append() 和 copy() 函数
package mainimport "fmt"func main() {   var numbers []int   printSlice(numbers)   /* 允许追加空切片 */   numbers = append(numbers, 0)   printSlice(numbers)   /* 向切片添加一个元素 */   numbers = append(numbers, 1)   printSlice(numbers)   /* 同时添加多个元素 */   numbers = append(numbers, 2,3,4)   printSlice(numbers)   /* 创建切片 numbers1 是之前切片的两倍容量*/   numbers1 := make([]int, len(numbers), (cap(numbers))*2)   /* 拷贝 numbers 的内容到 numbers1 */   copy(numbers1,numbers)   printSlice(numbers1)  }func printSlice(x []int){   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)}

 

总结

以上是内存溢出为你收集整理的GO 学习笔记全部内容,希望文章能够帮你解决GO 学习笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存