【Go学习Day01】

  • Go
    • 区块链技术(BT),分布式账本技术, 去中心化
      何为中心化?

    • 脚本语言(动态语言,如Python)的快速开发效率,编译语言(静态语言,如C)的高效运行性能

    • 处理大并发,高效利用计算机多核优势

    • 管道通讯机制(channel)

    • 垃圾回收机制

    • 可返回多个值(同python)
      在这里插入图片描述

    • go语言目录及程序结构在这里插入图片描述
      1)、为go语言的程序目录结构
      2)、在go语言中,每一个程序隶属于一个pakeage文件,这里hello.go所在的包是main
      3)、引入一个包"fmt",引入后可使用该包的函数,如fmt.Println()
      4)、func表示一个函数;main是一个主函数,为程序的入口;

    • go程序运行
      在这里插入图片描述
      1)、查看windows下go的SDK(Software Devolopment Kit 软件开发工具包)版本
      补充:
      在这里插入图片描述
      在这里插入图片描述
      确认开发环境(windows下配置环境变量:1.GOROOT:SDK存放目录,如:D:\go_programfiles\go;2.PATH:bin目录所在目录,如:%GOROOT%\bin;3.GOPATH:go程序存放目录,如:E:\goproject)
      2)、编译
      3)、运行
      补充:
      (不通过编译直接运行程序可利用go run hello.go,如下图:)
      在这里插入图片描述
      windows下查看当前目录下所有文件,dir(linux下可执行 ls -l 命令)
      在这里插入图片描述
      对源文件进行编译生成指定的可执行文件名,如下图:
      在这里插入图片描述

  • Go语言的转义字符(escape char)
    在这里插入图片描述
    1)、\t:表示一个制表符,通常使用它进行排版
    2)、\:表示一个
    3)、\r:表示一个回车,取代相同长度字符
    4)、":表示一个"
    5)、\n:换行符
    上述程序输出结果如下图:
    在这里插入图片描述
  • DOS(Disk Operating System 磁盘操作系统) 操作指令
    • 查看当前目录
      在这里插入图片描述
    • 切换到其他盘下:
      在这里插入图片描述
    • 切换上级目录
      在这里插入图片描述
    • 返回根目录
      在这里插入图片描述
    • 新建目录(md:make directory)
      • 新建一个目录
        在这里插入图片描述
      • 新建多个目录
        在这里插入图片描述
    • 删除目录(rd:remove directory)
      • 删除空目录
        在这里插入图片描述
      • 删除非空目录,不带询问(q:询问;s:将子文件一起删除)
        在这里插入图片描述
      • 删除非空目录,带询问
        在这里插入图片描述
    • 对文件的操作
      • 新建文件,存在即覆盖原文件内容,不存在即创建
        在这里插入图片描述
      • 复制文件
        在这里插入图片描述
      • 移动文件
        在这里插入图片描述
      • 删除文件
        • 删除指定文件
          在这里插入图片描述
        • 删除全部文件
          在这里插入图片描述
    • 清屏(cls)
  • 基本数据转换
    • 一个 var num1 int64 = 999999 ,var num2 int8 = int8(num1) ,fmt.Println(“num2 =”, num2) 得 num2 = 63问引出的问题思考
    • 计算机组成原理第二章中提及到数据的表示及运算,当高精度(大数)转换低精度(小数)就会出现溢出现象,这就好比将100ml的水放进50ml的容器中
    • 举例说明
      • 例1. 整数127,将其转换成二进制为1111111,在go中想用 int64 来表示,则为0…01111111(57个0和7个1构成),若用 int8来表示 int64,即程序为:
        package main
        import (
        “fmt”
        )
        var number1 int64 = 1111111
        var number2 int8 = int8(number1)
        fmt.Println(“number2 =”, number2)

        结果为:
        number2 = 127

      • 例2. 整数129, 将其转换成二进制为10000001,在go中想用 int64 来表示,则为0…010000001(56个0和10000001构成),若用 int8来表示 int64,即程序为:
        package main
        import (
        “fmt”
        )
        var number1 int64 = 10000001
        var number2 int8 = int8(number1)
        fmt.Println(“number2 =”, number2)

        结果为:
        number2 = -127

    • 理解说明
      • 例1,二进制1111111,int64表示即为0…01111111(57个0和7个1构成),若用int8来转换int64,则从右至左取8位,即为01111111,因为在进位计数中首位代表符号位,为0则为正,即首位后其余位数值相加
      • 例2,二进制10000001,int64表示即为为0…010000001(56个0和10000001构成),若用int8来转换替代int64,同上取8位,即为10000001,因为首位代表符号位,且为1,又因首位为1则为负,其余位数取反并加1,再求数值和
      • 图解说明如下:
        在这里插入图片描述
        ps: 十进制的99999转换二进制为1111 0100 0010 0011 1111‬,int64即为1111 0100 0010 0011 1111‬,转换int8即取后八位,其余溢出,即如上00111111 在这里插入图片描述
        进制转换如上图所示,若遇到小数的进制转换,唯一区别就是,小数点后进制凑位是从左至右,不足补0,即低位补0凑
发布了9 篇原创文章 · 获赞 3 · 访问量 226

猜你喜欢

转载自blog.csdn.net/c_wwwwwwww/article/details/104458139