当前位置: 首页 > news >正文

(Go语言)初上手Go?本篇文章帮拿捏Go的数据类型!

1. bool 类型

布尔类型:只有 true 和 false 两种值

在Go中,整数 0 不代表 false 值,1也不代表 true 值

  • 即数字无法代替布尔值进行逻辑判断,两者是完全不同的类型

布尔类型占用 1 字节

2. int 整型

Go中为不同位数的整数分配了不同的类型,主要分为无符号整型与有符号整型。

序号类型和描述占用空间表数范围
uint8无符号 8 位整型1字节0~255
uint16无符号 16 位整型2字节0~216-1
uint32无符号 32 位整型4字节0~232-1
uint64无符号 64 位整型8字节0~264-1
int8有符号 8 位整型1字节-128~127
int16有符号 16 位整型2字节-215~215-1
int32有符号 32 位整型4字节-231~231-1
int64有符号 64 位整型8字节-263~263-1
uint无符号整型 至少32位
int整型 至少32位
uintptr等价于无符号64位整型,但是专用于存放指针运算,用于存放死的指针地址。

若出现溢出问题,Goland会帮你自动显示出来

在这里插入图片描述
还有两个数据类型

  • rune 类型,有符号,与int32等价,等价于int32,表示一个Unicode码
  • byte 类型,无符号,与uint8等价,当要存储字符时选用byte
  1. Go 各整数类型分:有符号和无符号,int uint 的大小和系统有关
  2. Go 的整型默认声明为int类型
  3. Go程序中 整型变量 在使用时,遵守保小不保大的原则,即:在保证程序正确运行的情况下,尽量是哟ing占用空间小的数据类型。【如:年龄可以使用uint8类型】
  4. bit:计算机中最小的存储单位,byte:计算机中基本的存储单元
var e = 11
// 如何查看某个变量所占用的字节数,可以使用unsafe包下的Sizeof()方法
fmt.Println(unsafe.Sizeof(e)) // 8 字节,Go默认使用的是int64也就是int类型

3. float 浮点型

IEEE-754浮点数,主要分为单精度浮点数(float32)与双精度浮点数(float64)。

类型类型和描述存储空间表数范围
float32IEEE-754 32位浮点数4字节-3.504E38~3.403E38
float64IEEE-754 64位浮点数8字节-1.798E308~1.798E308

关于浮点数在机器中存放形式的简单说明

  • 浮点数=符号位+指数位+尾数位
  • 尾数部分可能丢失,造成精度损失
func main() {var a float32 = -123.0000901 // -123.00009		精度缺失1位var b float64 = -123.0000901 // -123.0000901fmt.Println(a, b)
}

浮点型的一些小贴士:

  1. Go 浮点类型有固定范围和长度,不受具体OS的影响
  2. Go 浮点类型默认声明位 float64类型
  3. 浮点型常量有很多种表现形式,具体可以看一下浮点型字面量
  4. 通常情况下,也更推荐使用float64而不是float32,因为64比32的精度更高

4. complex 复数

类型描述存储范围
complex12864位实数和虚数8字节
complex6432位实数和虚数4字节
var c complex64 = complex(1, 2)  // 1+2i
var d complex128 = complex(1, 3) // 1+3i
fmt.Println(c, d)
fmt.Println(unsafe.Sizeof(c), unsafe.Sizeof(d))

Go提供了三个内建函数 complex、real 和 imag 来创建和操作复数

  • complex(r, i float64) complex128

complex 函数用于创建一个复数。它接受两个参数,分别是复数的实部和虚部,并返回一个复数。

real 函数用于获取复数的实部。它接受一个复数作为参数,并返回该复数的实部。

imag 函数用于获取复数的虚部。它接受一个复数作为参数,并返回该复数的虚部。

5. char 字符

go语言字符串完全兼容UTF-8

类型描述
byte等价 uint8 可以表达ANSCII字符
rune等价 int32 可以表达Unicode字符
string字符串即字节序列,可以转换为[]byte类型即字节切片

在 Go 中没有专门的字符类型(Java中是char类型),如果要存储耽搁字符(字母),一般使用byte类型来保存

字符串就是一串固定长度的字符链接起来的字符序列。

在传统字符串中,它们是由字符组合形成的字符串。而Go中,字符串的组成是由字节构成的

func main() {var a byte = 'a'var b int = '你'var c string = "测试字符串"fmt.Println(a, b, c)
}
  1. 如果字符在ASCII表的,例如[0-1,a-z,A-Z…]这种可以直接保存到byte类型

  2. 但如果字符对应的码值大于255,例如中文。这时就要使用int类型保存了

  3. 如果我们需要安装字符的方式输出,这时我们需要格式化输出可以使用…

    fmt.Printf(“%c”,变量)

5.1 本质

  1. 在Go中,字符型默认都是使用UTF-8格式,在开发时就没有编码和乱码的困扰了
  2. 字符和码值的对应关系是通过字符编码表决定好的,也就是说所有字符本质都是数字码值,它们是可以参与数字运算的。
  3. 字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来
    • 存储:字符》对应码值》二进制》存储
    • 读取:二进制》码值》字符》读取

6. string 字符串

字符串就是一串固定长度的字符连接起来的字符序列,Go的字符串是由单个字节连接起来的。

Go语言的字符串的字节使用UTF-8编码表示Unicode文本

var d = `test another useType`
fmt.Println(d)

使用细节

  1. Go 语言的字符串的字节使用UTF-8编码标识Unicode文本,这样Golang统一使用UTF-8编码,中文乱码问题也就不存在了

  2. 字符串一旦赋值了,就不能再更改了;在Go中,字符串是不可变的。

    为什么go语言中不能通过下标的方式进行修改?

    • 因为go中的字符串的数据结构体是由一个指针和长度组成的结构体,该指针指向的一个切片才是真正的字符串值。
    • go中源码字符串的底层结构:
    type stringStruct struct {str unsafe.Pointer // 指向一个[]byte类型的切片指针len int // 字符串的长度
    }
    

    因为底层是一个[]byte类型切片,使用下标的方式去修改值,这时候将一个字符内容赋给byte类型,是不允许的。对字符串重新赋值是可以的

    因为go的底层其实是新创建了一个[]byte{}类型的切片,将变量str中的指针指向了新的内存空间地址(hello go)。原来的str存储的值(hello world)内存空间会随着垃圾回收机制被回收掉。

var e string = "不可变!"
e = "可变!" // 重新赋值是可以的
//e[0] = "可变吗?" // 不可以更改字符串
fmt.Println(e)

6.1 字面量

在Go中,字符串本质上是一个不可变的只读的字节数组,也是一片连续的内存空间。

字符串有两种字面量表达方式,分为普通字符串原生字符串

6.1.1 普通字符串

普通字符串由""双引号表示,支持转义,不支持多行书写,下列是一些普通字符串

var a string = "like this!"

6.1.2 原生字符串

原生字符串由反引号表示,不支持转义,支持多行书写,原生字符串里面所有的字符都会原封不动的输出包括换行和缩进。

`这是一个原生字符串....它是支持换行的在原生字符串中 \t 换行和 \t 缩进 无效
`

6.2 访问

因为字符串本质是字节数组,所以字符串的访问形式跟数组切片完全一致,例如访问字符串第一个元素

str := "this is a string,please check me"
fmt.Println(str[0], len(str)) // 索引下标处的元素是字符的字节,本质是切片所以可以使用len方法

因为本质是切片,所以对于字符串的截取会更加的简单,直接使用切片表达式即可

// 切割字符串
s := string(str[5:16])
fmt.Println(s) // is a string

尽管字符串本质是一个切片数组,但是你不可以由下标来更改字符串中的字符

不过,你可以直接赋值,重新赋值一个新字符串

//str[0] = 's' // 无法通过编译
//str[0] = "s" // 无法通过编译
str = "this is a new string"
fmt.Println(str)

6.3 转换

字符串可以转换为字节切片,而字节切片或字节数组也可以转换为字符串

str := "this is a string"
// 显式类型转换为字节切片
bytes := []byte(str)
fmt.Println(bytes)
// 显式类型转换为字符串
fmt.Println(string(bytes))

虽然字符串中的字符不能够修改,但是切片是可以进行更改的。

所以只需要把字符串转为切片,那么就可以对切片进行更改了。

添加的字符必须是ASCII码,Go是按照ASCII码来比辨认字符的

str := "this is a string"
fmt.Println(&str)
bytes := []byte(str)
// 修改字节切片
bytes = append(bytes, 97, 98, 99)
// 赋值给原字符串
str = string(bytes)
fmt.Println(str) // this is a stringabc

将字符串转换成字节切片以后,两者之间毫无关联,因为Go会新分配一片内存空间给字节切片,再将字符串的内存复制过去,对字节切片进行修改不会对原字符串产生任何影响,这么做是为了内存安全。

6.4 拼接

字符串拼接可以使用+操作符,也可以转换为切片再使用append()方法添加元素

func main() {str := "this is a string"str = str + " that is a int"fmt.Println(str)str1 := "this is a string"bytes := []byte(str1)bytes = append(bytes, "that is a int"...)str1 = string(bytes)fmt.Println(str1)
}

不过这两种拼接的性能都很差,如果对性能有更高的要求,建议使用strings.Builder()

// 创建一个字符串构造器
builder := strings.Builder{}
// WriteString方法:在字符串构造器的末尾添加指定字符串
builder.WriteString("this is a string ")
builder.WriteString("that is a int")
fmt.Println(builder.String())

6.5 遍历

Go 中的字符串是一个只读的字节切片,也就是说字符串的组成单位是字节而不是字符。

因此,我们也可以对字符串进行遍历操作

func main() {str := "hello world!"for i := 0; i < len(str); i++ {fmt.Printf("%d,%x,%s\n", str[i], str[i], string(str[i]))}
}

7. 默认值(零值)

官方文档中零值称为zero value,零值并不仅仅只是字面上的数字零,而是一个类型的空值或者说默认值更为准确。

类型零值
数字类型0
布尔类型false
字符串类型""
数组固定长度的对应类型的零值集合
结构体内部字段都是零值的结构体
切片,映射表,函数,接口,通道,指针nil

8. nil

源代码中的nil,可以看出nil仅仅只是一个变量。

var nil Type

Go中的nil并不等同于其他语言的nullnil仅仅只是一些类型的零值,并且不属于任何类型,而nil == nil会返回true

var nil string
println("nil值:", nil) // nil值: 

9. 派生类型

类型例子
数组[5]int,长度为5的整型数组
切片[]float64,64位浮点数切片
映射表map[string]int,键为字符串类型,值为整型的映射表
结构体type Gopher struct{},Gopher结构体
指针*int,一个整型指针。
函数type f func(),一个没有参数,没有返回值的函数类型
接口type Gopher interface{},Gopher接口
通道chan int,整型通道

10. 😍前篇知识回顾

  1. Go的环境安装与开发工具配置
  2. Go的运行流程步骤与包的概念
  3. (Go)变量与常量?字面量与变量的较量!

11. 💕👉 其他好文推荐

  • 还不了解Git分布式版本控制器?本文将带你全面了解并掌握
  • 带你认识Maven的依赖、继承和聚合都是什么!有什么用?
  • 2-3树思想与红黑树的实现与基本原理
  • !全网最全! ElasticSearch8.7 搭配 SpringDataElasticSearch5.1 的使用
  • 全面深入Java GC!!带你完全了解 GC垃圾回收机制!!
  • 全面了解Java的内存模型(JMM)!详细清晰!
  • 在JVM中,类是如何被加载的呢?本篇文章就带你认识类加载的一套流程!

全文资料学习全部参考于:Golang中文学习文档

相关文章:

(Go语言)初上手Go?本篇文章帮拿捏Go的数据类型!

1. bool 类型 布尔类型&#xff1a;只有 true 和 false 两种值 在Go中&#xff0c;整数 0 不代表 false 值&#xff0c;1也不代表 true 值 即数字无法代替布尔值进行逻辑判断&#xff0c;两者是完全不同的类型 布尔类型占用 1 字节 2. int 整型 Go中为不同位数的整数分配…...

支付宝域名如何加入白名单(扫码老是弹窗)

支付宝扫码之后,遇到非支付宝官方网页,请确认是否继续访问弹窗,问题解决办法。 本章教程提供解决办法,亲测有效。 一、打开支付宝开放平台 登录地址:https://open.alipay.com/ 然后进行扫码登录。 1、打开网页/移动应用开发 2、前往创建 3、创建应用...

嵌入式学习第21天Linux基础

目录 第1章 Linux 系统介绍 1.1 Unix 操作系统&#xff08;了解&#xff09; 1.2 Linux 操作系统&#xff08;了解&#xff09; 1.3 Linux 操作系统的主要特性&#xff08;重点&#xff09; 1.4 Linux 与 Unix 的区别与联系 1.5 GUN 与 GPL&#xff08;了解&#xff09; …...

【activiti工作流源码集成】springboot+activiti+mysql+vue+redis工作流审批流集成整合业务绑定表单流程图会签驳回

工作流集成实际项目案例&#xff0c;demo提供 源码获取方式&#xff1a;本文末个人名片直接获取。 前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvue…...

华为私有接口类型hybrid

华为私有接口类型hybrid Tip&#xff1a;hybrid类型&#xff0c;简称混合型接口。 本次实验模拟2层网络下 vlan10 vlan20 不能互访&#xff0c;vlan10 vlan20 同时可以访问vlan100 sw1配置如下&#xff1a; <Huawei>sy [Huawei]sys sw1 [sw1]vl ba 10 20 100 [sw1]int…...

计算机的错误计算(一百五十)

摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或 &#xff08;&#xff09;附近数时&#xff0c;输出会有错误数字。 例1. 已知 计算 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 -0.7882256119904400e0、0.1702266977524110e0、-0.…...

【模块化大作战】Webpack如何搞定CommonJS与ES6混战(3)

在前端开发中&#xff0c;模块化是一个重要的概念&#xff0c;不同的模块化标准有不同的特点和适用场景。webpack 同时支持 CommonJS 和 ES6 Module&#xff0c;因此需要理解它们在互操作时 webpack 是如何处理的。 同模块化标准 如果导出和导入使用的是同一种模块化标准&…...

工程认证与Spring Boot:计算机课程管理的新探索

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足&#xff0c;创建了一个计算机管理基于工程教育认…...

vue3的自定义hooks怎么写?

写个hook函数去追踪鼠标位置&#xff1a; 没用hook前&#xff1a; <script setup> import { ref, onMounted, onUnmounted } from vueconst x ref(0) const y ref(0)function update(event) {x.value event.pageXy.value event.pageY }onMounted(() > window.ad…...

SpringBoot项目编译报错 类文件具有错误的版本 61.0, 应为 52.0

springboot项目在编译时报错&#xff1a; /Users/Apple/Developer/art/caicai/cai-api/dubbo-samples/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java:22:32 java…...

【网络】应用层——HTTP协议

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是HTTP协议。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff1a;网络 &g…...

ServletContext介绍

文章目录 1、ServletContext对象介绍1_方法介绍2_用例分析 2、ServletContainerInitializer1_整体结构2_工作原理3_使用案例 3、Spring案例源码分析1_注册DispatcherServlet2_注册配置类3_SpringServletContainerInitializer 4_总结 ServletContext 表示上下文对象&#xff0c;…...

让AI帮我用java实现EasyExel读取图片—支持WPS嵌入图片

&#x1f308; 场景概述 java 小伙伴相信都使用 EasyExcel 以及 POI 库实现过 Excel 批量导入、导出功能&#xff0c;但只有部分人实现过 excel 导入带图片数据的场景。这个技术实现手段网上也有很多案例和demo&#xff0c;最常见的就是通过 XSSFPictureData 来实现。但是在 W…...

C# 实现对指定句柄的窗口进行键盘输入的实现

在C#中实现对指定句柄的窗口进行键盘操作&#xff0c;可以通过多种方式来实现。以下是一篇详细的指南&#xff0c;介绍如何在C#中实现这一功能。 1. 使用Windows API函数 在C#中&#xff0c;我们可以通过P/Invoke调用Windows API来实现对指定窗口的键盘操作。以下是一些关键的…...

深度学习之卷积问题

1 卷积在图像中有什么直观作用 ​ 在卷积神经网络中&#xff0c;卷积常用来提取图像的特征&#xff0c;但不同层次的卷积操作提取到的特征类型是不相同的&#xff0c;特征类型粗分如表1所示。 ​ 表1 卷积提取的特征类型 卷积层次特征类型浅层卷积边缘特征中层卷积局部特征深…...

yum安装zabbix5.0升级php到74的办法

【背景】 公司时不时有扫描漏洞,之前发现了php漏洞,因开启防火墙,限定IP+端口,暂时躲过升级;现在,老话重提,开启了KPI考核,躲是躲不过去的了,升级吧 【难题】 服务器为centos7,因操作系统问题,只能安装zabbix5.0。当时图省力,官网的办法,都是yum安装,很是简便。…...

JavaWeb合集23-文件上传

二十三 、 文件上传 实现效果&#xff1a;用户点击上传按钮、选择上传的头像&#xff0c;确定自动上传&#xff0c;将上传的文件保存到指定的目录中&#xff0c;并重新命名&#xff0c;生成访问链接&#xff0c;返回给前端进行回显。 1、前端实现 vue3AntDesignVue实现 <tem…...

当AI遇上时尚:未来的衣橱会由机器人来打理吗?

内容概要 在当今这个快速发展的时代&#xff0c;人工智能与时尚的结合正在逐渐改写我们对衣橱管理的认知。传统的衣橱管理常常面临着空间不足、穿搭单调及库存过多等挑战&#xff0c;许多人在挑选服饰时难以做出决策。然而&#xff0c;随着技术的进步&#xff0c;智能推荐和自…...

【初阶数据结构篇】二叉树OJ题

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…...

Windows系统中Oracle VM VirtualBox的安装

一.背景 公司安排了师带徒&#xff0c;环境搭建问题一直是初级程序员头疼的事情&#xff0c;我记录一下这些基础的内容&#xff0c;方便初学者。大部分开发者的机器还是windows系统&#xff0c;所以写了怎么安装。 二.版本信息及 操作系统&#xff1a;windows11 家庭版…...

go语言使用总结(持续更新)

整理后的内容如下&#xff1a; 1. 先了解函数签名&#xff0c;再了解传入参数以及调用 函数签名是函数的声明部分&#xff0c;包括函数名、参数列表和返回值列表。理解函数签名是理解函数行为的第一步&#xff0c;尤其是在了解参数类型、参数数量和返回值类型等方面。通过了解…...

如何在Android中自定义property

在Android中创建自定义的属性&#xff08;Android property&#xff09;通常用于调试、性能调优或传递应用和系统之间的信息。 以下是如何在Android中创建和使用自定义属性的步骤&#xff1a; 1. 定义属性 在Android中&#xff0c;属性是以“属性名称属性值”形式定义的键值对…...

机器学习5_支持向量机_原问题和对偶问题——MOOC

目录 原问题与对偶问题的定义 定义该原问题的对偶问题如下 在定义了函数 的基础上&#xff0c;对偶问题如下&#xff1a; 综合原问题和对偶问题的定义得到&#xff1a; 定理一 对偶差距&#xff08;Duality Gap&#xff09; 强对偶定理&#xff08;Strong Duality Theo…...

索引的细节

目录 什么是线性 搜索算法&#xff1f; 算法&#xff1a;二进制搜索算法 二进制搜索如何工作&#xff1f; 什么是二叉排序树&#xff1f; 构建二叉排序树 什么是AVL树&#xff1f; AVL树的性能分析 什么是线性 搜索算法&#xff1f; 线性搜索是一种非常简单的搜索算法。在…...

LeetCode 540.有序数组中的单一元素

思路一&#xff1a;hash&#xff0c;键存入元素&#xff0c;值存入次数&#xff0c;然后遍历&#xff0c;不是最优解 思路二&#xff1a;二分查找 假设数组为 [1, 1, 2, 2, 3, 4, 4]&#xff0c;其中唯一出现一次的元素是 3。在一个有序数组中&#xff0c;如果没有唯一的元素&…...

【图文】【DIY便签】如何自行编译OPENCV使用动态库

1 去官网下载安装包和源码 下面红色圈中的是源码&#xff0c;绿色圈中的是安装包&#xff1a; 2 配置工具链 安装过程不说了&#xff0c;教程到处都是。编译的话使用CMAKE&#xff0c;配置如下&#xff1a; 上面两个路径分别是&#xff1a; 源码目录编译生成的文件放置的位…...

WordPress文章自动提交Bing搜索引擎:PHP推送脚本教程

随着网站SEO优化的重要性日益增加,将新发布的内容快速提交到搜索引擎显得尤为重要。尤其对于Bing站长平台,自动化推送能让Bing尽快发现和索引我们网站的新内容。本文将详细介绍如何通过PHP脚本自动推送WordPress当天发布的文章至Bing站长平台,确保新文章被Bing及时收录。 前…...

C++题目分享

嗨嗨嗨&#xff0c;我又来更新这个系列了&#xff0c;很久没更新了。让我们看一看有那些有趣的题目&#xff1a; 题目一&#xff1a; 1.以单链表作为存储结构&#xff0c;实现线性表的就地逆置&#xff08;提示&#xff0c;就地逆置&#xff1a;在不使用额外的数据结构或空间…...

【Spring 框架】初识 Spring

文章目录 前言1. 什么是 Spring2. 什么是 Maven3. 第一个 SpringBoot 项目4. 项目讲解结语 前言 在前面我们一起学习了 JavaSE 的基础知识&#xff0c;随着学习的深入&#xff0c;我们也将逐步介绍 JavaEE 的内容&#xff0c;像 Spring 框架&#xff0c;Mybatis 等等。在本篇博…...

链表(Linkedlist)

序言 我们都了解链表是一种数据的存储结构&#xff0c;在Java使用中逻辑与c&#xff0c;c语言数据结构别无二致&#xff0c;但主要由于Java中不存在指针的说法&#xff0c;从而导致在实现过程中的代码不同&#xff0c;所以在学习的过程中我们无需过于担心&#xff0c;逻辑都是…...

建怎样的网站挣钱快/seo综合查询软件排名

前言 不收费&#xff0c;也不需要下载任何工具&#xff0c;web项目就能打包成APP&#xff0c;支持在线和离线&#xff0c;APP名称、LOGO、横竖屏、启动页、引导页等都可以自己设置&#xff0c;非常灵活&#xff0c;并且可以上架到应用市场。 操作指南 1.创建应用 注册中控易动…...

上海宝山区做网站的/产品推广方式

今天在使用jee的eclipse的时候打开提示 解决办法在网上搜寻了一下&#xff0c;有两种方式 1、关闭360相关的软件 2、将eclipse中的配置文件eclipse.ini改变如下 -startupplugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar--launcher.libraryplugins/org.eclipse.equi…...

东营市公司网站建设价格/线下推广方式都有哪些

这个CRM很牛逼、很强大&#xff0c;自定义编辑太强大&#xff0c;充分利用个性化设置以后几乎无需二次开发&#xff0c;大大降低实施成本。 如果你是个在这方面有悟性的人&#xff0c;花两、三天的时间就可以证实上面的说法。 软件&#xff1a;SuiteCRM - 开源、核心功能软件…...

哈尔滨营销网站建设/南城网站优化公司

今天我在学习《Python编程&#xff1a;从入门到实践》的时候&#xff0c;发一下一个问题&#xff0c;特此在此记录一下&#xff01; Geany是一款简单的文本编辑器&#xff1a;它易于安装&#xff1b;让你能够直接运行几乎所有的程序&#xff08;而无需通过终端来运行&#xff…...

营销型网站与展示型网站/舆情管理

原生 dividerandroid:divider"?android:dividerHorizontal"/>自定义 dividershowDividers是分隔线的显示位置&#xff0c;beginning、middle、end分别代表显示在开始位置&#xff0c;中间&#xff0c;末尾。android:id"id/km_calllog_root_view"androi…...

常熟专业做网站/2345网址导航下载

1.Spring简介 ​ Spring是一个开源框架&#xff0c;它由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson)创建。它是为了解决企业应用开发的复杂性而创建的。 ​ 目前是JavaEE开发的灵魂框架。他可以简化JavaEE开发&#xff0c;可以非常方便整合其他框架&#xff0c…...