美文网首页
Go的变量定义,函数不定参,返回多参和一些操作符使用

Go的变量定义,函数不定参,返回多参和一些操作符使用

作者: Link_Biao | 来源:发表于2017-09-26 23:54 被阅读0次

在go语言中,不像和其他语言一样,他没有所谓的public,private这两个定义公共和私有的关键字,他约束定义首字母大写就是公有的pulbic,小写或者下划线_就是私有的private。

var MAX_COUNT int=10//默认public,首字母大写
var min_count int=1//默认private,首字母小写

首先,在工程目录创建一个执行函数入口,包名为mian,这个不可改变,然后导入ftm这个基础函数包,可以取别名fm,或者.符号,但是一般不建议用.作别名,容易让人一眼看不知道导入了什么包

import (
    f "fmt"
)

go声明变量,如果不声明变量类型,则由系统检测

  • 常用声明
var var0 int=0//单个声明
var va1,va2,va3 int=1,2,3//多个声明
  • 简洁声明
var0:=0//单个声明
va1,va2,va3:=1,2,3//多个声明
  • 省略变量类型
var var0=0//单个声明
var va1,va2,va3=0,1,2//多个声明
  • 常量声明用const
const(
    FIRST  int= 0//public
    SECOND     //结果0,如果没有定义值,常量里面的值是自上引用
    second =2//private
)
  • go枚举,用关键字itoa,从0开始,每次自增1,不管它出现在常量集合定义的第几位,0都是从常量集合的第一个常量开始,每出现一个自增1,遇到第二个常量声明const关键字时候重置为0
const ( 
    FIRST  int= 1
    SECOND //结果1,自上引用
    THIRD  = iota//结果2
)
  • 类型别名,go语言可以声明一个类型别名,就好比取了另外一个名字,作用不变,用关键字type声明
type(
tInt int
tFloat float64
tByte byte
)

var va0 tInt=2//使用的时候

go函数是可以返回多个参数的,这一点跟其他语言有点不一样,表达式为

func 函数名(参数列表) (返回值列表) {
    // 函数体
}
//一个返回值,返回列表可以不需要用()包裹返回参数类型
func t(a int) int {
    return a + 1
}
//多个返回值,需要用()包裹返回参数类型
func t(a int) (int, int) {
    return a + 1, a + 2
}
//不定参数
func t1(args...int){
    for i,arg:=range args{
        f.Println("values:",arg," position:",i)
    }
}
//任意类型的不定参数函数定义
func 函数名(args ...interface{}) (返回值列表) {
    // 函数体
}
//例子
func t2(args ...interface{}) {
    for _, arg := range args {
        switch arg.(type) {
        case int:
            f.Println(arg, "is an int value.")
        case string:
            f.Println(arg, "is a string value.")
        case int64:
            f.Println(arg, "is an int64 value.")
        default:
            f.Println(arg, "is an unknown type.")
        }
    }
}
  • go是有闭包概念的,语法
c := func() func(参数类型列表) 返回值类型列表 {
    // 自由变量定义
    ...
    return func(参数列表) 返回值列表 {
        // 函数定义
    }
}

//函数参数是int类型,返回两个函数,返回的函数的参数都是int类型,返回值也都是int类型的
func1 := func(x int) (func(int) int, func(int) int) {
        a1 := func(i int) int {
            return i + x
        }
        a2 := func(j int) int {
            return j + x
        }
        return a1, a2
    }
    
    fc1, fc2 := func1(8)
    f.Println(fc1(2), fc2(3))//结果18,28

位运算符,譬如<< >>

3<<2//结果就是12

11>>2//结果就是2

位运算符计算先从十进制转二进制,3的二进制就等有0011,向左位移两位,就是变成等于1100,再转十进制就等于12了,向右位移的,也是先转换二进制,11的二进制就等于1011,向右位移两位,高位补0,就变成等于0010,再转十进制就等于2了

  • 其他运算符的
3  0011//二进制值
11 1011//二进制值
&     3&11 //如果两个都是1,就是1,如果不是,就是0,所以结果为0011,十进制结果就是3
|     3|11 //如果其中个都是1,就是1,如果两个都不是,就是0,所以结果为1011,十进制结果就是11
^     3^11 //如果其中两个都是1,就是0,如果其中一个是1,就是1,所以结果为1000,十进制结果就是8
&^    3&^11 //如果下面的1,就强制转换对应上面的为0,如果下面是0,就不做操作,所以结果为0000,十进制结果就是0

相关文章

  • Go的变量定义,函数不定参,返回多参和一些操作符使用

    在go语言中,不像和其他语言一样,他没有所谓的public,private这两个定义公共和私有的关键字,他约束定义...

  • Go语言-函数

    一.函数的定义 1 表达式作为返回值 2 定义变量接收返回值 3 在函数定义时定义接收变量 4.不定参函数... ...

  • 第02天(函数、工程管理)_01

    01_无参无返回值函数的使用.go 02_普通参数列表.go 03_不定参数类型.go 04_不定参数传递.go ...

  • 函数

    定义域使用 不定参//...在函数调用可以传递不定量的参数//如果不定参函数传递的参数有多个 不定参要写在其他参数...

  • 《日子》golang-函数function

    函数function -Go函数不支持嵌套、重载和默认参数-但支持以下特性-无需声明原型、不定长度变参、多返回值、...

  • Go语言函数

    GO语言函数 GO语言是由函数组成的 没有返回值没有形参的函数 有返回值没有形参的函数 没有返回值有形参的函数 有...

  • go基础编程day5函数function和结构struct

    函数function go函数不支持嵌套、重载和默认参数 但支持以下特性:无需声明原型、不定长度变参、多返回值、命...

  • go编程基础视频笔记-函数/defer/结构/方法/接口/反射

    函数function go函数不支持嵌套、重载和默认参数但支持以下特性:无需声明原型、不定长度变参、多返回值、命名...

  • python 10天快速教程 Day3

    本节重点 函数的定义 局部变量与全局变量 调用函数的传参方式 不定长参数 缺省参数 函数参数的高级使用 函数的嵌套...

  • 第二天

    一、函数 1、无参无返回 2、有参无返回 参数必为变量非常量,所以不需要var 不定参数类型(1、...type,...

网友评论

      本文标题:Go的变量定义,函数不定参,返回多参和一些操作符使用

      本文链接:https://www.haomeiwen.com/subject/skqyextx.html