go初识

for循环

for i := 1; i < 5; i++ {
    fmt.Println(i*i)
}
ls := "agd"
for _, arg :=  range ls{
    fmt.Println(string(arg))
}

格式化输出

%d int 变量
%x, %o, %b 分别为 16 进制,8 进制,2 进制形式的 int
%f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00
%t 布尔变量:truefalse
%c rune (Unicode 码点),Go 语言里特有的 Unicode 字符类型
%s    string
%q 带双引号的字符串 "abc" 或 带单引号的 rune 'c'
%v 会将任意变量以易读的形式打印出来
%T 打印变量的类型
%% 字符型百分比标志(%符号本身,没有其他操作)

运算符优先级

有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

优先级运算符
7 ^ !
6 * / % << >> & &^
5 + - | ^
4 == != < <= >= >
3 <-
2 &&
1 ||

指针引用

func main() {
    var a int = 10
    var b *int
    b = &a
    fmt.Println(b, *b)
}
package main

import (
    "fmt"
)

type Books struct {
    title   string
    author  string
    subject string
    book_id int
}

func main() {
    // 创建一个新的结构体
    fmt.Println(Books{"go语言", "zhou", "go教程", 01})
    // 也可以使用 key=>value 格式
    fmt.Println(Books{title: "go11", author: "zhou11", subject: "gojiaocheng", book_id: 02})
    // 忽略的字段为 0 或 空
    fmt.Println(Books{title:"go22", author:"zhou22"})
}

//{go语言 zhou go教程 1}
//{go11 zhou11 gojiaocheng 2}
//{go22 zhou22  0}

==

package main

import "fmt"

type Books struct {
    title   string
    author  string
    subject string
    book_id int
}

func main() {
    var Book1 Books  // 声明Book1 为 Books 类型
    // Book1 的描述
    Book1.title = "go"
    Book1.author = "zhou"
    Book1.subject = "go教程"
    Book1.book_id = 01
    fmt.Println(Book1.title, Book1.author, Book1.subject, Book1.book_id)
}

// go zhou go教程 1

结构体作为函数参数

你可以像其他数据类型一样将结构体类型作为参数传递给函数。并以以上实例的方式访问结构体变量:

package main

import "fmt"

type Books struct {
    title   string
    author  string
    subject string
    book_id int
}

func main() {
    var Book1 Books  // 声明book1 为 Books 类型
    // book1 的描述
    Book1.title = "go"
    Book1.author = "zhou"
    Book1.subject = "go教程"
    Book1.book_id = 01
    printBook(Book1)
}

func printBook(book Books)  {
    fmt.Println(book.title)
    fmt.Println(book.author)
    fmt.Println(book.subject)
    fmt.Println(book.book_id)
}

结构体指针

你可以定义指向结构体的指针类似于其他指针变量,格式如下:

package main

import "fmt"

type Books struct {
    title   string
    author  string
    subject string
    book_id int
}

func main() {
    var Book1 Books  // 声明book1 为 Books 类型
    // book1 的描述
    Book1.title = "go"
    Book1.author = "zhou"
    Book1.subject = "go教程"
    Book1.book_id = 01
    printBook(&Book1)
}

func printBook(book *Books)  {
    fmt.Println(book.title)
    fmt.Println(book.author)
    fmt.Println(book.subject)
    fmt.Println(book.book_id)
}

两个主要区别: 形参和实参

形参是指针类型,实参需要传变量地址

原文地址:https://www.cnblogs.com/zhzhlong/p/9344765.html