Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Go语言算术符

Go语言语法基础之算术符示例详解

作者:明明跟你说过

这篇文章主要介绍了Go语言语法基础之算术符示例详解,详细讲解算术、关系、逻辑、位、赋值及其他运算符的用法与示例,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、引言

1、Go语言简介

Go语言,又称Golang,是由Google公司开发的一种现代编程语言。它起源于2007年,并在2009年正式对外发布。Go语言旨在提高软件开发的效率、可靠性和可维护性,特别在处理并发性方面表现出色。

2、Go语言特点

二、算术符 

1、算术运算符

示例代码

package main

import (
    "fmt"
)

func main() {
    a := 10.5
    b := 5.25

    // 加法
    sum := a + b
    fmt.Printf("Sum: %.2f\n", sum)

    // 减法
    difference := a - b
    fmt.Printf("Difference: %.2f\n", difference)

    // 乘法
    product := a * b
    fmt.Printf("Product: %.2f\n", product)

    // 除法
    quotient := a / b
    fmt.Printf("Quotient: %.2f\n", quotient)
}

输出结果运行上述代码后,输出结果如下:

Sum: 15.75
Difference: 5.25
Product: 55.13
Quotient: 2.00

2、关系运算符 

在 Go 语言中,关系运算符用于比较两个值,并返回一个布尔值(true 或 false),表示比较的结果。关系运算符主要包括以下几种:

示例代码下面是一个简单的示例,展示了如何使用这些关系运算符:

package main

import (
    "fmt"
)

func main() {
    a := 10
    b := 5

    // 等于
    isEqual := a == b
    fmt.Printf("%d == %d: %v\n", a, b, isEqual)

    // 不等于
    isNotEqual := a != b
    fmt.Printf("%d != %d: %v\n", a, b, isNotEqual)

    // 大于
    isGreater := a > b
    fmt.Printf("%d > %d: %v\n", a, b, isGreater)

    // 小于
    isLess := a < b
    fmt.Printf("%d < %d: %v\n", a, b, isLess)

    // 大于等于
    isGreaterOrEqual := a >= b
    fmt.Printf("%d >= %d: %v\n", a, b, isGreaterOrEqual)

    // 小于等于
    isLessOrEqual := a <= b
    fmt.Printf("%d <= %d: %v\n", a, b, isLessOrEqual)
}

输出结果运行上述代码后,输出结果如下:

10 == 5: false
10 != 5: true
10 > 5: true
10 < 5: false
10 >= 5: true
10 <= 5: false

3、逻辑运算符 

在 Go 语言中,逻辑运算符用于组合条件表达式,并返回布尔值。逻辑运算符主要有三种:

示例代码下面是一个简单的示例,展示了如何使用这些逻辑运算符:

package main

import (
    "fmt"
)

func main() {
    a := true
    b := false

    // 逻辑与 (&&)
    andResult := a && b
    fmt.Printf("%t && %t = %t\n", a, b, andResult)

    // 逻辑或 (||)
    orResult := a || b
    fmt.Printf("%t || %t = %t\n", a, b, orResult)

    // 逻辑非 (!)
    notA := !a
    fmt.Printf("!%t = %t\n", a, notA)
    notB := !b
    fmt.Printf("!%t = %t\n", b, notB)
}

输出结果运行上述代码后,输出结果如下:

true && false = false
true || false = true
!true = false
!false = true

4、位运算符 

在 Go 语言中,位运算符用于对整数类型的变量或常量进行按位操作。位运算符主要包含以下几个:

示例代码下面是一个简单的示例,展示了如何使用这些位运算符:

package main

import (
    "fmt"
)

func main() {
    a := 0b1010  // 二进制表示为 1010,即十进制的 10
    b := 0b1100  // 二进制表示为 1100,即十进制的 12

    // 按位与 (&)
    andResult := a & b
    fmt.Printf("a & b = %b (decimal: %d)\n", andResult, andResult)

    // 按位或 (|)
    orResult := a | b
    fmt.Printf("a | b = %b (decimal: %d)\n", orResult, orResult)

    // 按位异或 (^)
    xorResult := a ^ b
    fmt.Printf("a ^ b = %b (decimal: %d)\n", xorResult, xorResult)

    // 按位取反 (^)
    notResult := ^a
    fmt.Printf("^a = %b (decimal: %d)\n", notResult, notResult)

    // 左移 (<<)
    leftShiftResult := a << 2
    fmt.Printf("a << 2 = %b (decimal: %d)\n", leftShiftResult, leftShiftResult)

    // 右移 (>>)
    rightShiftResult := a >> 1
    fmt.Printf("a >> 1 = %b (decimal: %d)\n", rightShiftResult, rightShiftResult)
}

输出结果运行上述代码后,输出结果如下:

a & b = 1000 (decimal: 8)
a | b = 1110 (decimal: 14)
a ^ b = 0110 (decimal: 6)
^a = ...110101 (decimal: -11)  // 注意,按位取反在二进制补码表示下会有所不同
a << 2 = 101000 (decimal: 40)
a >> 1 = 101 (decimal: 5)

解释按位与 (&):

按位或 (|):

按位异或 (^):

按位取反 (^):

左移 (<<):

右移 (>>):

应用场景

5、赋值运算符 

在 Go 语言中,赋值运算符用于将一个值赋给一个变量或表达式。除了基本的赋值运算符 = 之外,Go 还支持一系列复合赋值运算符,这些运算符结合了算术运算符或其他运算符的功能与赋值操作。

基本赋值运算符 =基本的赋值运算符 = 用于将一个值赋给一个变量。

package main

import (
    "fmt"
)

func main() {
    a := 10
    fmt.Println("Initial value of a:", a)

    // 使用 = 赋值
    a = 20
    fmt.Println("Value of a after assignment:", a)
}

输出结果:

Initial value of a: 10
Value of a after assignment: 20

复合赋值运算符复合赋值运算符结合了算术运算符或其他运算符的功能与赋值操作。常见的复合赋值运算符包括:

示例代码下面是一个简单的示例,展示了如何使用这些复合赋值运算符:

package main

import (
    "fmt"
)

func main() {
    a := 10
    b := 5

    fmt.Println("Initial value of a:", a)
    fmt.Println("Initial value of b:", b)

    // 加法赋值
    a += b
    fmt.Println("Value of a after += b:", a)

    // 减法赋值
    a -= b
    fmt.Println("Value of a after -= b:", a)

    // 乘法赋值
    a *= b
    fmt.Println("Value of a after *= b:", a)

    // 除法赋值
    a /= b
    fmt.Println("Value of a after /= b:", a)

    // 取模赋值
    a %= b
    fmt.Println("Value of a after %= b:", a)

    // 按位与赋值
    a &= 0b1100
    fmt.Println("Value of a after &= 0b1100:", a)

    // 按位或赋值
    a |= 0b0011
    fmt.Println("Value of a after |= 0b0011:", a)

    // 按位异或赋值
    a ^= 0b0101
    fmt.Println("Value of a after ^= 0b0101:", a)

    // 左移赋值
    a <<= 2
    fmt.Println("Value of a after <<= 2:", a)

    // 右移赋值
    a >>= 1
    fmt.Println("Value of a after >>= 1:", a)
}

输出结果运行上述代码后,输出结果如下:

Initial value of a: 10
Initial value of b: 5
Value of a after += b: 15
Value of a after -= b: 10
Value of a after *= b: 50
Value of a after /= b: 10
Value of a after %= b: 0
Value of a after &= 0b1100: 4
Value of a after |= 0b0011: 7
Value of a after ^= 0b0101: 6
Value of a after <<= 2: 24
Value of a after >>= 1: 12

6、其他运算符(如&取地址、*解引用等) 

在 Go 语言中,除了算术运算符、关系运算符、逻辑运算符和位运算符外,还有一些特殊的运算符用于指针操作,以及其他用途的运算符。这里主要介绍指针相关的运算符 &(取地址) *(解引用),以及一些其他常用的运算符。

指针相关的运算符

示例代码下面是一个简单的示例,展示了如何使用取地址和解引用运算符:

package main

import (
    "fmt"
)

func main() {
    // 声明并初始化一个变量
    value := 10

    // 取得变量的地址
    addressOfValue := &value
    fmt.Printf("Address of value: %p\n", addressOfValue)

    // 解引用地址,获取值
    unreferencedValue := *addressOfValue
    fmt.Printf("Unreferenced value: %d\n", unreferencedValue)

    // 修改指针指向的值
    *addressOfValue = 20
    fmt.Printf("Modified value via pointer: %d\n", value)
}

输出结果运行上述代码后,输出结果如下:

Address of value: 0xc000018048
Unreferenced value: 10
Modified value via pointer: 20

解释

其他运算符除了指针相关的运算符外,Go 语言还有其他一些常用的运算符,例如:

示例代码下面是一些其他运算符的示例:

范围运算符 (range)

package main

import (
    "fmt"
)

func main() {
    // 使用 range 迭代切片
    slice := []int{1, 2, 3, 4, 5}
    for index, value := range slice {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }
}

输出结果

Index: 0, Value: 1
Index: 1, Value: 2
Index: 2, Value: 3
Index: 3, Value: 4
Index: 4, Value: 5

转换运算符 (T(expr))

package main

import (
    "fmt"
)

func main() {
    var floatVal float64 = 3.14
    intVal := int(floatVal) // 将 float64 转换为 int
    fmt.Printf("Converted integer value: %d\n", intVal)
}

输出结果

Converted integer value: 3

逗号运算符 (comma)

在 Go 语言中,逗号主要用于声明多个变量:

package main

import (
    "fmt"
)

func main() {
    a, b := 10, 20
    fmt.Printf("a: %d, b: %d\n", a, b)
}

输出结果

a: 10, b: 20

总结 

到此这篇关于Go语言语法基础之算术符的文章就介绍到这了,更多相关Go语言算术符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文