• Go语言运算符


    Go 语言内置的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符。

    算术运算符

    运算符描述

    +

    相加

    -

    相减

    *

    相乘

    /

    相除

    %

    求余

    ++

    自增

    --

    自减

    关系运算符

    运算符描述

    ==

    检查两个值是否相等,如果相等返回 True 否则返回 False。

    !=

    检查两个值是否不相等,如果不相等返回 True 否则返回 False。

    >

    检查左边值是否大于右边值,如果是返回 True 否则返回 False。

    <

    检查左边值是否小于右边值,如果是返回 True 否则返回 False。

    >=

    检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。

    <=

    检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。

    逻辑运算符

    运算符描述

    &&

    逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。

    ||

    逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。

    !

    逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。

    位运算符

    运算符描述

    &

    按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。

    |

    按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或。

    ^

    按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。

    <<

    左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

    >>

    右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。

    赋值运算符

    运算符描述

    =

    简单的赋值运算符,将一个表达式的值赋给一个左值

    +=

    相加后再赋值

    -=

    相减后再赋值

    *=

    相乘后再赋值

    /=

    相除后再赋值

    %=

    求余后再赋值

    <<=

    左移后赋值

    >>=

    右移后赋值

    &=

    按位与后赋值

    ^=

    按位异或后赋值

    |=

    按位或后赋值

    其他运算符

    运算符描述

    &

    取地址符,返回变量存储地址

    *

    取值符,返回指针的变量

    运算符优先级

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

    优先级运算符

    7

    ^ !

    6

    * / % << >> & &^

    5

    + - | ^

    4

    == != < <= >= >

    3

    <-

    2

    &&

    1

    ||

    特殊标识符

    “_”是特殊标识符,又称占位符(空标识符号),用来忽略结果。

    1、特殊标识符应用在import中

    在Go语言里,import的作用是导入其他package。

    特殊标识符(如:import _ oldboy/golang)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用(import _ 包路径)只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。

    示例:
    代码目录结构

    src 
    |
    +--- main.go            
    |
    +--- oldboy
           |
            +--- oldboy.go

    main.go

    package main
    
    import _ "./oldboy"
    
    func main() {
        // oldboy.Print() 
        //编译报错:./main.go:6:5: undefined: oldboy
    }

    oldboy.go

    package oldboy
    
    import "fmt"
    
    func init() {
        fmt.Println("The old boy welcomes you.")
    }
    
    func Print() {
        fmt.Println("Hello!")
    }

    运行结果:

    The old boy welcomes you.

    2、特殊标识符应用在代码中

    package main
    
    func main() {
        str, _ := oldboy()
        _ = str
    }
    
    func oldboy() (str string, err error) {
        str = "The old boy welcomes you."
        err = nil
        return
    }

    解释:

    占位符,意思是那个位置本应赋给某个值,但是咱们不需要这个值。所以就把该值赋给占位符,意思是丢掉不要。这样编译器可以更好的优化,任何类型的单个值都可以丢给占位符。

    第一个占位符:这种情况是忽略函数返回值,函数返回两个结果,而你只想要一个结果。

    第二个占位符:这种情况是忽略未使用的局部变量,如果声明的局部变量,不使用,编译器是会报错。

     

  • 相关阅读:
    基于visual c++之windows核心编程代码分析(52)使用WMI 获取进程启动参数
    基于visual c++之windows核心编程代码分析(56)使用winsock搜索蓝牙设备
    这个星期上网找工作,周六准备就去上海了.
    Delphi 中的 XMLDocument 类详解(21) 暂停
    数组与子界
    Delphi 中的 XMLDocument 类详解(17) 上一个节点、下一个节点、父节点
    Delphi 中的 XMLDocument 类详解(19) NodeValue 与 NodeName 的读写区别
    Delphi 中的 XMLDocument 类详解(18) 更好地显示 xml 的测试结果 FormatXMLData 及其他
    Delphi 中的 XMLDocument 类详解(16) 节点列表中的第一个与最后一个节点
    Delphi 中的 XMLDocument 类详解(14) 遍历 XML 文件
  • 原文地址:https://www.cnblogs.com/jiangchunsheng/p/10702803.html
Copyright © 2020-2023  润新知