首页 > 其他分享 >Goland安全开发第二节

Goland安全开发第二节

时间:2024-10-08 19:34:06浏览次数:7  
标签:结果 fmt 安全 Goland Go Println 第二节 true 赋值

Goland安全开发第二节

一、基础语法-初识函数、基本类型

package main
import "fmt"
func main() {
fmt.Println("Hello Go!")
}

上述是一个简单的go代码

Package

包是 Go 语⾔的基本组成单元,通常使⽤单个的⼩写单词命名,⼀个 Go 程序本质上就是⼀组包的集合。所有 Go 代码都有⾃⼰⾪属的包。main 包在 Go 中是⼀个特殊的包,整个 Go 程序中仅允许存在⼀个名为 main 的包。
函数
Go 语⾔中,函数名的⾸字母决定了其可见性。如果函数名的⾸字母⼤写,那么该函数是导出的,可以在包外部使⽤;如果⾸字⺟⼩写,那么该函数是未导出的,只能在包内部使⽤。

基本类型

字符串型-string

单引号和双引号的区别

单引号
⽤途:⽤于表示字符(rune)类型。
类型:字符类型在Go中是rune,它是int32的别名,可以表示⼀个Unicode码点
双引号
⽤途:⽤于表示字符串(string)类型。
类型:字符串类型在Go中是string,它是⼀个字符序列,可以包含零个或多个字符
数字Number
var a int     // 有符号整型
var b uint    // 无符号整型
var c uint32  // 32位无符号整型
布尔型Booleans
fmt.Println(true && true)     // true 
fmt.Println(true && false)    // false
fmt.Println(true || true)     // true
fmt.Println(true || false)    // true
fmt.Println(!true)            // false

变量声明

变量声明
var s1 string 
s1 = "schneidr"
简短声明
S2 := "schneider"    // := 是声明并且赋值
一次声明多个变量
var s3, s4 string
或者s3, s4 := "schneider","schneider1"
匿名变量
_,s5 := "1","2"   

注释

//单行注释
/*多行
注释*/

fmt.Println与print

print是go中自带的,用于简单的调试,输出时不会换行
fmt.println是fmt库中的,输出格式更加灵活,输出时会换行

运算符

算数运算符

加法

a := 7 + 7

减法

a := 7 - 7

乘法

a := 7 * 7

除法

a := 7 / 7

取模

a := 7 % 7
赋值运算符

=(赋值)

a = 5  //将5赋值给a

+=(加赋值)

a := 5
a =+ 3  //等价于a = a +3 ,结果是8

-=(减赋值)

a := 5
a -= 3 //等价于a = a * 3 ,结果是 15

*=(乘赋值)

a := 5
a *= 3 // 等价于a = a * 3,结果是15

/= (除赋值)

a := 6
a /= 3 /  / 等价于a = a / 3,结果是2

%= (取模赋值)

a := 5
a %= 3 // 等价于a = a % 3,结果是2
关系运算符

== (等于)

a := 5

b := 5

fmt.Println(a == b) // 结果是true

!=(不等于)

a := 5

b := 3

fmt.Println(a != b) // 结果是true

<(⼩于)

a := 3

b := 5

fmt.Println(a < b) // 结果是true

<=(⼩于等于)

a := 5

b := 5

fmt.Println(a <= b) // 结果是true

'>'(⼤于)

a := 5

b := 3

fmt.Println(a > b) // 结果是true

(⼤于等于)

a := 5

b := 5

fmt.Println(a >= b) // 结果是true
逻辑运算符

&&(逻辑与)

a := true

b := false

fmt.Println(a && b) // 结果是false

||(逻辑或)

a := true

b := falsefmt.Println(a || b) // 结果是true

!(逻辑⾮)

a := true

fmt.Println(!a) // 结果是false
位运算符

&(按位与)

a := 5 // 0101

b := 3 // 0011

fmt.Println(a & b) // 结果是1(0001)

|(按位或)

a := 5 // 0101

b := 3 // 0011

fmt.Println(a | b) // 结果是7(0111)

^(按位异或)

a := 5 // 0101

b := 3 // 0011

fmt.Println(a ^ b) // 结果是6(0110)

如果两个数的对应位只有⼀个是 1,那么结果位为 1。
如果两个数的对应位都是 1 或都是 0,那么结果位为 0。

<<(左移) 保留0

a := 1 // 0001

fmt.Println(a << 2) // 结果是4(0100)

》》(右移)不保留0

a := 4 // 0100

fmt.Println(a >> 2) // 结果是1(0001)
复合赋值运算符

&=(按位与赋值)

a := 5 // 0101

a &= 3 // 结果是1(0001)

|=(按位或赋值)

a := 5 // 0101

a |= 3 // 结果是7(0111)

^=(按位异或赋值)

a := 5 // 0101

a ^= 3 // 结果是6(0110)
其它运算符

++(⾃增)

a := 5

a++ // 结果是6

--(⾃减)

a := 5

a-- // 结果是4

:=(短变量声明)

a := 5 // 声明并初始化变量a

<-(通道操作符)

ch := make(chan int)
go func() {
 ch <- 5 // 发送值到通道
}()
a := <-ch // 从通道接收值
fmt.Println(a) // 结果是5

分组和分隔符

( 和 )(小括号)

a := (5 + 3) * 2 // ⼩括号⽤于改变运算优先级

[ 和 ](中括号)

arr := [3]int{1, 2, 3} // 定义数组
fmt.Println(arr[0]) // 访问数组元素,结果是1

{ 和 }(大括号)

func main() {
 fmt.Println("Hello, World!")
}

,(逗号)

a, b := 1, 2 // 多变量声明

;(分号)

// 在Go语言中编译器会自动在每行代码的末尾添加分号,这就是隐式,下面是显式
a := 5; b := 3; fmt.Println(a + b)

...(省略号)

省略号允许你创建一个函数,该函数可以接受任意数量的参数。这些参数在函数内部被表示为一个切片

func sum(nums ...int) int {
    sum := 0
    for _, num := range nums {
        sum += num
    }
    return sum
}
调用这个函数时,可以传递任意数量的整数参数

fmt.Println(sum(1, 2, 3))       // 输出 6

fmt.Println(sum(1, 2, 3, 4, 5)) // 输出 15
在切片操作中,省略号可以表示从当前位置到切片的末尾

s := []int{1, 2, 3, 4, 5}

sub := s[1:] // 从索引1到切片末尾,结果是 [2, 3, 4, 5]
如果开始索引省略,那么默认从切片的开始位置切片

sub := s[:3] // 从切片开始到索引3(不包括索引3),结果是 [1, 2, 3]
如果开始和结束索引都省略,那么就是原始切片的一个副本

sub := s[:] // 整个切片的副本,结果是 [1, 2, 3, 4, 5]

.(点号)

fmt.Println("Hello, World!") // 调⽤包中的函数

快捷键

Ctrl+B 转到声明

Ctrl+p 查看这个函数可以接收什么内容

.var 快速⽣成变量名

shift+空格 下⼀⾏

创建项⽬记得⽤英⽂,不能⽤中⽂创建项⽬
⽆法相互调⽤,看看是不是mod包错了

标签:结果,fmt,安全,Goland,Go,Println,第二节,true,赋值
From: https://www.cnblogs.com/schneider/p/18452349

相关文章