惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
V
Visual Studio Blog
P
Privacy International News Feed
月光博客
月光博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
Webroot Blog
Webroot Blog
T
Threatpost
宝玉的分享
宝玉的分享
The Last Watchdog
The Last Watchdog
小众软件
小众软件
L
LINUX DO - 最新话题
C
Cisco Blogs
T
Troy Hunt's Blog
Schneier on Security
Schneier on Security
酷 壳 – CoolShell
酷 壳 – CoolShell
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
G
GRAHAM CLULEY
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
罗磊的独立博客
V
V2EX
博客园 - Franky
P
Proofpoint News Feed
SecWiki News
SecWiki News
腾讯CDC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
PCI Perspectives
PCI Perspectives
V2EX - 技术
V2EX - 技术
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题

博客园 - 你看起来真的很好吃

linux系统时间管理 安装历史docker版本 OCR文本提取+NER命名实体识别 测试 深度学习-激活函数 go——make和new的区别 go——GC垃圾回收机制 go——标识符的命名规范 go语言——转义符 go开发环境安装 git使用 项目文档目录总结 鼠标连点器——python版 windows使用YOLOV5训练模型——搭建编译环境 高匿名动态IP代理获取 logging模块进行格式化输出 笔记 Django admin 添加操作记录 facenet + fiass 实现人脸识别
go语言——数据类型
你看起来真的很好吃 · 2024-08-12 · via 博客园 - 你看起来真的很好吃
  1. 声明变量的三种方式(支持多变量声明)

     // 声明变量方式1

        // 指定变量类型,声明后若不赋值,使用默认值

        var i int

        fmt.Println("i=", i)

        // 声明变量方式2

        // 类型推导式

        var b = 2

        fmt.Printf("b=%d \n", b)

        // 声明变量方式3(只能用在函数内)

        // 省略var

        c := 3

        fmt.Printf("c=%d \n", c)

  2. 数据类型
    1. 基本数据类型
      1. 值类型(int int8 int16 int32 int64 uint uint8 uint 16 uint32 uint64 )
      2. 字符类型 (没有专门的字符类型,使用byte表示存储字符)
        1. 字符常量使用引号或单引号
        2. go中允许使用转义符将字符转换为特殊字符
        3. go中字符使用utf-8编码
        4. go中字符本质是一个整数,直接输出时是该字符对应的utf-8的编码
        5. 可以给变量直接赋值一个数字,然后使用格式化输出时%c会输出该数字对应的unicode字符
        6. 字符类型可以进行运算,相当于一个整数,因为他都有对应unicode码值
        7. 字符类型存储和读取规则
          存储:字符->码值->二进制->存储
          读取:二进制->码值->字符串->读取                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
      3. 布尔类型
        1. 只占用一个字节,只能为true或false,适用于逻辑运算一般用于程序流程控制
        2. if 条件控制语句
        3. for条件控制语句                                                        
      4. 字符串类型 
        1. 字符串中的字节使用utf-8编码标识Unicode文本
        2. 字符串赋值后不能修改
        3. 字符串有两种表现形式(双引号,可以识别转义字符)(反引号,以字符串的原生形式输出,包含换行符和特殊字符)
        4. 字符串拼接方式,使用+拼接
        5. 当一行字符串太长时,需要使用多行字符串,加号需要放在上一行末尾

      5. 基本数据默认值
        1. 整形:0
        2. 浮点型:0
        3. 字符串:”“
        4. byte:0
        5. 布尔类型:false 
      6. go基础数据类型转换(需要显示转换)
        1. int转float: float32(x)
        2. 非string基础类型转string
          1. 使用fmt.Sprintf(”参数“, 表达式)转换成字符串(常用)
          2. 使用strconv.FormatInt(变量,进制), strconv.FormatFloat(变量,"f", 精度,进制)
          3. 使用strconv.Itoa(num) 直接返回string类型
        3. sting转非string基础类型  注意如果没有转成功将输出默认值
          1. 字符串转布尔:strconv.ParseBool("true")
          2. 字符串转int:strconv.ParseInt("10", base, bitsize)  base指定转成几进制的  bitsize指定输出结果大小,必须能无溢出的整数类型 
          3. 字符串转float:strconv.ParseFloat("1.2", bitsize)  bitsize指定输出结果大小,必须能无溢出的整数类型
        4. 注意事项(1:范围小的可以转换为范围大的)(2:转换类型后,变量本身的数据类型并没有变化)(3:转换时大范围转小范围,如果超过小范围取值范围系统不会报错,只是转换的结果按溢出处理)
    2. 复杂/派生数据类型
      1. 数组
      2. 切片
      3. 结构体
      4. 指针(pointer)
        1. 介绍
          1. 基础数据类型变量存储的就是值,也叫做值类型
          2. 使用&获取地址
          3. 使用*获取指针的值
          4. 指针类型存储的是一个地址,这个地址指向的空间存的才是值
      5. 管道
      6. 函数
      7. 接口
      8. map
    3. 值类型
      1. 包含int、float、bool、string、数组、结构体
      2. 特点:值类型变量直接存储值,内存通常在栈中分配
    4. 引用类型
      1. 包含指针、切片、map、管道、接口
      2. 特点:引用类型变量存储的是地址,这个地址对应的空间才是真正的值内存通常在堆上分配,没有任何变量引用这个地址时,改地址对应的数据空间就会变成垃圾,由GC回收

posted @ 2024-08-12 00:42  你看起来真的很好吃  阅读(30)  评论()    收藏  举报