rust语言基础学习: rust中的字符串
📅 2020-07-04
在Rust中提到字符串,通常指的是rust核心语言中的字符串类型str
(字符串slice)和rust标准库中的String
类型。
除了str
和String
这两个常用的字符串类型,在标准库中还有一些其他的字符串类型,例如OsString
、OsStr
、CString
、CStr
。
本文将介绍str
和String
两个字符串类型。
在Rust中提到字符串,通常指的是rust核心语言中的字符串类型str
(字符串slice)和rust标准库中的String
类型。
除了str
和String
这两个常用的字符串类型,在标准库中还有一些其他的字符串类型,例如OsString
、OsStr
、CString
、CStr
。
本文将介绍str
和String
两个字符串类型。
rust与其他编程语言一样支持哈希Map这种数据结构。
HashMap<K, V>
定义在rust标准库的collections
moduleuse
将其引入作用域。
下面演示HashMap最基本的API使用。
下面的代码演示了使用new
创建了一个空的HashMap,使用insert
向HashMap中添加元素。
rust的模块系统包括:
use
: 模块通过use来使用,允许你控制作用域和路径的私有性crate是一个二进制项或库。
crate root
是一个源文件,crate 是一个二进制项或者库。crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块。
crate将一个作用域相关的功能分组到一起,使得这些功能可以方便的在多个项目间共享。
cargo是rust的构建系统和包管理器,使用cargo可以创建rust项目。
创建项目:
1cargo new c01_hello
2Created binary (application) `c01_hello` package
项目目录结构如下:
...因为kong的社区版不提供dashboard,本文将介绍kong的第三方开源的图形化管理工具konga在Kubernetes集群上的部署安装。 konga是一个非官方的第三方开源的kong的图形化管理工具,konga需要使用kong的Admin API,konga具有如下特性:
...本文将使用helm在Kubernetes集群中部署微服务API网关kong,并将其用作Kubernetes的Ingress Controller。
Kong官方单独维护了一个项目叫Kong for Kubernetes
,项目的地址是https://github.com/Kong/kubernetes-ingress-controller。
Kong for Kubernetes
是一个Kubernetes的Ingress Controller,通过插件架构提供API管理能力。
Kong官方另外提供了一个Helm Chart,使用Helm安装这个Chart可以在Kubernetes集群上运行Kong所需的所有组件。
kong是一个云原生的、高性能的、可扩展的API网关(分布式微服务抽象层)。 kong基于openresty, nginx+lua模块开发,其核心价值就是高性能和可扩展性。
kong的基本运行情况如下图所示,kong可以通过充当微服务请求的网关, 同时通过插件提供负载均衡、日志记录、身份认证、速率限制(rate-limiting)、转换(transformations)等功能。
...grpcurl是一个命令行工具,使用它可以在命令行中访问gRPC服务,就像使用curl
访问http服务一样。
gRPC服务是使用Protobuf(PB)协议的,而PB提供了在运行时获取Proto定义信息的反射功能。grpc-go中的"google.golang.org/grpc/reflection"
包就对这个反射功能提供了支持。
这里以grpc-go官方的helloword为例,代码结构如下:
1grpc-hello
2├── go.mod
3├── go.sum
4├── main.go
5└── proto
6 ├── doc.go
7 ├── helloworld.pb.go
8 └── helloworld.proto
helloworld.proto:
...今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第23, 24节的学习笔记。
这两节分上、下两节主要介绍了对于"业务系统"如何做需求分析、系统设计、代码实现,并且遵循前面已经学过的设计原则。 原文中以一个"积分兑换系统"为实战案例进行介绍。
...今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第22节的学习笔记,介绍面向对象设计原则中的迪米特法则(LOD)原则。
面向对象有很多经典的设计原则:
“高内聚、弱耦合"是一个非常重要的设计思想,能够有效的提高代码的可读性和可维护性,能够缩小功能改动导致的代码改动范围。 “高内聚、弱耦合"实际上可以作为很多设计思想、设计原则的总纲,很多设计思想、设计原则都是以实现"高内聚、弱耦合"为目的,例如单一职责原则(SRP)、基于接口而非实现编程等等。
...