• 四月二十三号日报


    今日学习内容

    Go语言的字符类型,字符串,strings和strconv包,指针

    1.1字符类型:严格来说,这并不是 Go 语言的一个类型,字符只是整数的特殊用例。byte类型是unit8的别名。

    var ch byte = 65或 var ch byte ='x41'
    

    x总是紧跟着长度为2或者16的二进制数,还有一种写法是后面紧跟着长度为3的八进制数,Go同样支持Unicode(UTF-8),在书写 Unicode 字符时,需要在 16 进制数之前加上前缀 u 或者 U。因为 Unicode 至少占用 2 个字节,所以我们使用 int16 或者 int 类型来表示。如果需要使用到 4 字节,则会加上 U 前缀;前缀 u 则总是紧跟着长度为 4 的 16 进制数,前缀 U 紧跟着长度为 8 的 16 进制数。

    1.2字符串:字符串是一种值类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容;更深入地讲,字符串是字节的定长数组

    Go 支持以下 2 种形式的字面值:

    • 解释字符串:

      该类字符串使用双引号括起来,其中的相关的转义字符将被替换,这些转义字符包括:

      • :换行符
      • :回车符
      • :tab 键
      • uU:Unicode 字符
      • \:反斜杠自身
    • 非解释字符串:

      该类字符串使用反引号括起来,支持换行

    1.3strings和strconv包:Go中使用strings包来完成对字符串的主要操作,如:

    • HasPrefix 判断字符串 s 是否以 prefix 开头
    • HasSuffix 判断字符串 s 是否以 suffix 结尾
    • Contains 判断字符串 s 是否包含 substr
    • Index 返回字符串 str 在字符串 s 中的索引(str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str
    • LastIndex 返回字符串 str 在字符串 s 中最后出现位置的索引(str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str
    • Replace 用于将字符串 str 中的前 n 个字符串 old 替换为字符串 new,并返回一个新的字符串,如果 n = -1 则替换所有字符串 old 为字符串 new
    • Count 用于计算字符串 str 在字符串 s 中出现的非重叠次数
    • Repeat 用于重复 count 次字符串 s 并返回一个新的字符串
    • ToLower 将字符串中的 Unicode 字符全部转换为相应的小写字符
    • ToUpper 将字符串中的 Unicode 字符全部转换为相应的大写字符
    • strings.TrimSpace(s) 来剔除字符串开头和结尾的空白符号;如果你想要剔除指定字符,则可以使用 strings.Trim(s, "cut") 来将开头和结尾的 cut 去除掉。该函数的第二个参数可以包含任何字符,如果你只想剔除开头或者结尾的字符串,则可以使用 TrimLeft 或者 TrimRight 来实现
    • Join 用于将元素类型为 string 的 slice 使用分割符号来拼接组成一个字符串

    1.4指针:Go语言的取地址符是&,放到一个变量前使用就会返回相应变量的内存地址

    var i1 = 5
    fmt.Printf("An integer: %d, it's location in memory: %p
    ", i1, &i1)
    

    这个地址可以存储在一个叫做指针的特殊数据类型中,在本例中这是一个指向 int 的指针,即 i1:此处使用 *int 表示。如果我们想调用指针 intP,我们可以这样声明它:

    var intP *int
    

    然后使用intP = &i1是合法的,此时intP指向i1。intP 存储了 i1 的内存地址;它指向了 i1 的位置,它引用了变量 i1。当一个指针被定义后没有分配到任何的变量时,它的值为nil

    但是你不能得到文字和常量的地址

    	const i = 5
    	ptr := &i
    	ptr2 := &10
    

    虽然Go和C/C++一样都有指针的概念,但是对于pointer+2这样的操作是不允许的

    PostgreSQL学习

    ​ 在官网下载Postgresql和图形化管理工具pgadmin4后一路傻瓜式安装即可

    1.1:何为PostgreSQL?

    PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.21为基础的对象关系
    型数据库管理系统(ORDBMS)。POSTGRES 领先的许多概念在很久以后才出现在一些商业数据
    库系统中。
    PostgreSQL是最初的伯克利代码的开源继承者。它支持大部分 SQL 标准并且提供了许多现代
    特性:
    • 复杂查询
    • 外键
    • 触发器
    • 可更新视图
    • 事务完整性
    • 多版本并发控制
    同样,PostgreSQL可以用许多方法扩展,比如, 通过增加新的:
    • 数据类型
    • 函数
    • 操作符
    • 聚集函数
    • 索引方法
    • 过程语言
    并且,因为自由宽大的许可证,任何人都可以以任何目的免费使用、修改和分发
    PostgreSQL, 不管是私用、商用还是学术研究目的。

    1.2创建新表与删除:与常用数据库创建表的命令差不多,用--使用注释

    create table weather(
    	city varchar(80),
    	temp_lo int,
    	temo_hi int,
    	prcp real,
    	date date
    );
    drop table tablename
    

    1.2在表中增加行:insert语句向表中添加行

    insert into weather values ('San Francisco', 46, 50, 0.25, '1994-11-27')
    如果你需要,你可以用另外一个顺序列出列或者是忽略某些列, 比如说,我们不知道降水
    量
    insert into weather (date, city, temo_hi, temp_lo) values ('1994-11-29', 'Hayward', 54, 37);
    

    1.3查询一个表:SQL的select语句为查询用途,该语句分为选择列表(列出要返回的列)、表列表(列出从中检索数据的表)以及可选的条件(指定任意的限制)。

    select * from weather
    

    这里*是“所有列”的缩写。 因此相同的结果应该这样获得

    SELECT city, temp_lo, temo_hi, prcp, date FROM weather;
    

    你可以在选择列表中写任意表达式,而不仅仅是列的列表

    select city,(temo_hi+temp_lo)/2 as temp_avg,date from weather
    select * from weather where city ='San Francisco' and prcp>0.0
    
    

    as句子是如何给输出列重新命名的,where子句包含一个布尔(真值)表达式,只有那些使布尔表达式为真的行才会被返回。在条件中可以使用常用的布尔操作符(and、or和not)

    select *from weather order by city
    select distinct city from weather
    
    

    第一条语句是要求返回的查询结果是排好序的,第二条是消除重复的行

    1.4在表之间的连接:一个同时访问同一个或者不同表的多个行的查询叫连接查询。

    select * from weather,cities where city =name
    
    

    where所挑选的字段名被数据库自动识别属于哪一个表,当两个表中有重复名的列时,就需要进行限定

    select weather.city, weather.temp_lo, weather.temo_hi,
     weather.prcp, weather.date, cities.location
     from weather, cities
     where cities.name = weather.city;
    
    

    1.5聚集函数:count(计数)、sum(和)、avg(均值)、max(最大值)和min(最小值)的函数。

    select city from weather where temp_lo=max(temp_lo)
    
    

    上面这条语句不能运行,因为聚集函数不允许出现在where句子中(存在这个限制是因
    为where子句决定哪些行可以被聚集计算包括;因此显然它必需在聚集函数之前被计
    算),解决的办法是使用子查询

    select city from weather where temp_lo=(select max(temp_lo) from weather)
    
    

    1.6更新:用update命令更新现有的行

    update weather set temo_hi=temo_hi-2,temp_lo=temp_lo-2 where date>'1994-11-28'
    
    

    1.7删除:数据行可以用delete删除

    delete from weather where city='Hayward'
    
    
  • 相关阅读:
    2. 两数相加
    1. 两数之和
    x-pack elasticsearch
    简单的文档
    PHP imagepng函数 问题
    Nginx 配置
    nginx内置变量
    TCP通信
    mysql 的一些操作
    ubuntu 软件包降级
  • 原文地址:https://www.cnblogs.com/swtczb/p/11632612.html
Copyright © 2020-2023  润新知