4.1

package main

import "fmt"

func main() {
   //todo:int系列与字符--------------------------
   aa := '$'
   fmt.Println("aa=", aa) //aa= 36

   b := '被'
   fmt.Println("b=", b) //b=34987 被字对应的Unicode十进制数值(码值)是34987

   a := 10 + b
   fmt.Println()
   fmt.Println("a=", a) //a=34997

   var c byte
   c = 97
   fmt.Println(c)        //97
   fmt.Printf("%c\n", c) // a   输出字符a

   var e int
   e = '被'
   fmt.Printf("e=%c,e=%d\n", e, e) //e=被,e=34987

   f := 887955555555
   fmt.Printf("f代表的字符为%c\n", f) //这个数字太大,utf-8 unicode对照表中没有这么大的数字对应的字符

   g := '\n'
   fmt.Println("g=", g) //g=10

   h := '7'
   fmt.Printf("字符h的字符是%c,字符h的十进制码值是%d\n", h, h) //字符h的字符是7,字符h的十进制码值是55

   //j := '1999' //todo:超出0~9的整数不能作为字符的,字符本来已经被当做整型在运行,本就是整型的整数就没有必要成为字符了,可以是字符串
   //fmt.Printf("j的码值是%d",j)

   //todo:注意这里!!!
   sli := []int16{22, 'a', '我'} //切片里的每一个元素都在内存里给1个字节的空间对该元素进行表示,这里一个
   // 字节表示'我'不够,书写时候不报错,但跑起来会报错,除非改成int16及以上
   //sli = append(sli,"你好")   //这里即便是sli是[]int64,依然不能把“你好”放进去,因为“你好”是string类型,
   //存在类型不匹配的问题,尽管底层是两个字节进行表示
   fmt.Println("sli=", sli) //如果sli是[]int16及以上,这里会打印 sli= [22 97 25105]

   //todo:string字符串---------------------------------------

   //todo:因为string字符串在golang中本质是切片,每一个字符(即数字)本质上又是由连续
   //todo:的字节表示的,因此可以进行如下转换,但注意不能用 []int8 []int16,虽然单个
   //todo:汉字字符可以用int16两个字节的空间来表示 如: sli := []int16{12,'我'}可以运行不报错
   sli2 := []int32("大家好")    //todo:只能用[]int32或[]byte,不能用[]int64及其他,由于字符串中有汉字,故用[]byte再转成字符串时可能会乱码
   fmt.Println("sli=", sli2) //sli2= [22823 23478 22909]

   //todo:内建函数len()对字符串默认取的是以[]byte单字节为一个单位的数量,一个字符串中的汉字3个字节,一个英文字符1个字节,
   //todo:以[]int32强转后则以对应的4字节为一个单位计数

   n := len("hi大家好")
   fmt.Println("n=", n) // n=11

   stri := []int32("hi大家好") //只能用[]int32或[]byte,不能用[]int64及其他,由于字符串中有汉字,故用[]byte再转成字符串时有可能会乱码
   //用[]byte下一行会输出  stri的类型是[]uint8,值=[104 105 229 164 167 229 174 182 229 165 189]
   //nn= 11    且依然输出  hi大家好
   fmt.Printf("stri的类型是%T,值=%v\n", stri, stri) //stri的类型是[]int32,值=[104 105 22823 23478 22909]
   nn := len(stri)                             //5
   fmt.Println("nn=", nn)                      //nn=5
   fmt.Println(string(stri))                   //hi大家好

   fmt.Println(string([]int32{26194, 34987, 23376})) //晒被子
   //fmt.Println(string([]int64{56,99,34987}))//不能写int64,会报错

   bytes := []byte("hello")     //todo:每一个字符都在ASCII范围内的,可以用[]byte来转换类型
   fmt.Println("bytes=", bytes) //bytes= [104 101 108 108 111]

   strs := string([]byte{97, 229, 140, 151, 98})
   fmt.Println("strs=", strs) //strs= a北b//todo:三个ASCII码值一起表示一个汉字,和utf-8unicode一个大的数字表示一个汉字一样

   //todo:一个字符串一旦赋值完成,该字符串中的任意一个字符都不能再被单独更改。
   //todo:但可以先转成切片,修改后再转为字符串来达到修改的目的
   zifuchuan := "hi你吃饭了吗"
   fmt.Println("字符串截取后为:", zifuchuan[3:]) //字符串截取后为: ��吃饭了吗
   qiepian := []int32(zifuchuan)
   fmt.Println("处理后再截取为:", qiepian[3:]) //处理后再截取为: [21507 39277 20102 21527]
   fmt.Println(string(qiepian[3:]))     //吃饭了吗
   qiepian[3] = '喝'
   fmt.Println(zifuchuan) //hi你吃饭了吗  //todo:可见把字符串当做切片来对某一下标的元素修改,并不能改变字符串,
   //todo:只有像81、84、87行那样修改了切片后重新转回字符串才行
   fmt.Println(string(qiepian)) //hi你喝饭了吗

   //todo:转义符只能在双引号中被识别,反引号中不能被识别
   var str string
   str = `你好\n世界`
   fmt.Println("str=", str) //str= 你好\n世界

   str2 := `你好"\n"世界`
   fmt.Println("str2=", str2) //str2= 你好"\n"世界

   str3 := "你好\n世界"
   fmt.Println("str3=", str3)
   /*
      str3= 你好
      世界
   */

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值