go基础较详细

GO

一、基本结构与基本数据类型

1.0 变量

package main
​
import "fmt"
​
//全局变量:可以不使用
var (
    name string
    age int
)
​
func main() {
    var v1 string  //不赋值为零值
    var v2 = 2 //自动推导无需定义类型
    v3 := 23   //自动推导简写
    _ := fmt.Sprintf("") //匿名变量 下划线
    fmt.Println(v1,v2,v3)
    //值类型使用只存储
    s1 :=2    
    s2 :=s1
    s1=1
    fmt.Println(s2,s1) 
}

1.1 常量

const beef, two, c = "eat", 2, "veg"  //并行赋值
const (
const (
    Mond= iota   //iota表示在常量组的第几行,从零开始
    Tusday
    Wednesday
    Thursday, Friday, Saturday = 4, iota, iota   //两个iota都是三,因为都在第四行
    dsa =iota
)
)
​

1.2 基本数据类型

Go 中不允许不同类型之间的混合使用

a.数字类型

//整数
int8(-128 -> 127)
int16(-32768 -> 32767)
int32(-2,147,483,648 -> 2,147,483,647)
int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
//无符号整数:
uint8(0 -> 255)
uint16(0 -> 65,535)
uint32(0 -> 4,294,967,295)
uint64(0 -> 18,446,744,073,709,551,615)
//浮点型
float32(+- 1e-45 -> +- 3.4 * 1e38)   精确到小数点后7位
float64(+- 5 1e-324 -> 107 1e308)    精确到小数点后15位
​

b.类型转换

    i := int8(127)
    var i2 int32
    i2= int32(i)      //类型转换需要显示转换;不能直接  i2 =i
    fmt.Println(i2)
​
    v1 :=077
    u := uint64(v1)    //类型装换
    fmt.Println(v1,u)

1.3 运算符

一元运算符: !true  取反
           ^ 按位补足    
            << 位左移 小数点想左移动一位
            >> 位右移 小数点想右移动一位
二运运算符: && 只有当两边的值都为 true 的时候    
           ||   一边为true,返回true;两边为false,返回false
注:当二元运算符,左侧为true,则不会运算后面的代码,可以使用()提升优先级

1.4 进制数表示方法

​
 v1 :=077     //增加前缀 0 来表示 8 进制数
 v2 :=0xff          //增加前缀 0x 来表示 16 进制数
    v3 :=0xAA
    V4 := 10e3    //10e3 :表示10*(10)^3
    
    

1.5 格式化输出字符串

%d 用于格式化整数
%x 和 %X 用于格式化 16 进制表示的数字
%g 用于格式化浮点型
%f 输出浮点数,%e 输出科学计数表示法
%0d 用于规定输出定长的整数,其中开头的数字 0 是必须的
%p  指针的格式化标识符为 
%s 
//不同编码的格式化方式
var ch int = '\u0041'   //utf-8的16进制表示方式
var ch2 int = '\u03B2'
var ch3 int = '\U00101234'
fmt.Printf("%d - %d - %d\n", ch, ch2, ch3) // integer
fmt.Printf("%c - %c - %c\n", ch, ch2, ch3) // character
fmt.Printf("%X - %X - %X\n", ch, ch2, ch3) // UTF-8 bytes
fmt.Printf("%U - %U - %U", ch, ch2, ch3) // UTF-8 code point
​
​

1.6 运算符优先级

  • 二元运算符的运算方向均是从左至右

  • 由上至下代表优先级由高到低

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

1.7 类别名

  • 类型别名得到的新类型并非和原类型完全相同,新类型不会拥有原类型所附带的方法

  • TZ 可以自定义一个方法用来输出更加人性化的时区信息

    type integer int   //给int起别名
    var v32 integer     //定义变量时可以使用别名来定义

1.8 字符串

//1.一般的比较运算符(==、!=、<、<=、>=、>)通过在内存中按字节比较来实现字符串的对比
//2.字符串是字节的定长数组,在中括号 [] 内写入索引
//3.字符串拼接使用+号,或者+=与同一个变量
​

1.9 strings包

​
func main() {
    s := "w ddd dsjkdsjs dk"
    s2 := "d"
    s3 :="22"
    println(strings.HasPrefix(s, "A"))  //判断s开头
    println(strings.HasSuffix(s2, "a"))//判断s2结尾
    println(strings.Contains(s, "aS")) //判断s包含
    println(strings.Index(s, "SA"))//返回w在s的下标;不存在时,返回-1;从首字符开始算
    println(strings.LastIndex(s, "w"))//返回w最后出现的索引位置;不存在返回-1
    println(strings.Replace(s, s2, s3, 6))  //s:表示原字符穿,s2是s中的字符,s3是替换s2的值,6表示需要替换6次s2
    println(strings.Count(s, "w")) //统计w在s中出现的次数,非重叠
    println(strings.Repeat(s2, 6))   //将s2重复拼接6次
    println(strings.TrimSpace(" s d ")) //剔除字符串开头和结尾的空白符号
    println(strings.Trim("sdds", "s")) //指定去除开头和结尾的s符号
    println(strings.TrimLeft("sdd", "s"))  //剔除左边的开头的字符
    println(strings.Fields("sds ds d"))  //以空格分隔,返回一个切片
    println(strings.Split("sdsd", "s")) //指定以s分割,返回一个切片
    println(strings.Join(strings.Fields("sds ds d"), "2")) //接收一个切片,每个元素中间以2拼接
    println(strings.NewReader("sss"))   //读取字符串内容返回reader对
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值