a + 1 b = b + 1 fmt.Println(a, b) c := int16(a) + b fmt.Println(c) } 127 128 -128 128 -127 129 2
100 64 144 0x64 0144 floats: 3.14 +3e+00 3.141500E+00 A string 类型转换 隐式类型转换 级别 数据类型 1 long double 2
数组在内存中是顺序存储的,所以数组的大小必须是确定的方便分配存储空间 数组属于引用类型,使用默认的的赋值运算符在两个变量之间赋值只是复制了一个引用两个变量共享同一份数据,则改变一个另一个也会相应的改变; 常规PS数组 基础示例 元素2 元素3 元素4 2.数组访问 PS > $arr[0] #元素都是从0下标开始索引的 1 PS > $arr[($arr.Count-1)] #输出最后一个元素 8 PS > $arr [0,1,3,5] ##一次输出多个元素 (值得学习) 1 2 5 7 PS > $arr[($arr.Count)..0] #将数组逆序输出 (值得学习) 8 7 6 5 3 2 1 PS () #一个新的数组不是两个变量指向同一个数组 PS > $arr2.Equals($arr) #这里是为False False PS > $arr2[0]=1024 PS > $arr2 1024 基础示例: PS > [int[]] $num = @() PS > $num += 1024 PS > $num += 3.1415926 #这里由于强制类型的作用(会直接忽略小数点后的数字) PS
大纲1.网络编程简介2.BIO网络编程3.AIO网络编程4.NIO网络编程之Buffer5.NIO网络编程之实战6.NIO网络编程之Reactor模式1.网络编程简介既然是通信,那么肯定会有两个对端。 这一点对所有模式(BIO、AIO、NIO)的网络编程都适用。在网络编程里,开发者关注的其实就三个事情:一.建立网络连接客户端连接服务端,服务端等待和接收连接。 2.BIO网络编程(1)BIO即阻塞IO模型(2)BIO编程介绍(3)BIO模型的问题与改进(4)BIO编程的标准模式(5)BIO编程的例子(1)BIO即阻塞IO模型(2)BIO编程介绍服务端提供IP和端口 (1)AIO即异步IO模型(2)AIO编程介绍(3)客户端AsynchronousSocketChannel(4)服务端AsynchronousServerSocketChannel(5)AIO、BIO 和NIO对比(1)AIO即异步IO模型(2)AIO编程介绍AIO核心类有两个:AsynchronousSocketChannel(客户端)AsynchronousServerSocketChannel(
--- CREATE 语句 描述:CREATE 语句用于创建数据库和数据表; DATABASE 库 TABLE 表 INDEX 索引 VIEW 视图 CREATE DATABASE|TABLE 语句 基础语法 例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。 NUMERIC(p,s) 精确数值,精度 p,小数点后位数 s。 2 字节 Long 允许介于 -2,147,483,648 与 2,147,483,647 之间的全部数字。 4 字节 Single 单精度浮点。处理大多数小数。 4 字节 Double 双精度浮点。 2 bytes + number of chars text 可变长度的字符串。最多 2GB 文本数据。 2 字节 int 允许介于 -2,147,483,648 与 2,147,483,647 的所有数字。
)的结果是(0,1,2)。 一些常见的与列表或元组相关的函数如表2-1所示。此外,列表作为对象,自带了很多实用的方法(元组不允许被修改,因此方法很少),如表2-2所示。此外,列表还有"列表解析"这一功能。 代码清单2-3 使用append()方法对列表元素进行操作c=[1,2,3]d=[]for i in c:d.append(i+1)print(d)//输出结果为[2,3,4]将代码清单2-3使用列表解析进行简化 ,如代码清单2-4所示。 c=[1,2,3]d=[i+1 for i in c]print(d) //输出结果也为[2,3,4]
的常亮 关键字: Const Go常亮的多个定义: // 定义常亮的关键字 const // 定义多个常亮 const( PI = 3.14 const1 = "1" const2 = 2 const3 = 3 ) 全局变量的声明与赋值: var ( name = "wyc" name1 = 1 name2 = 2 name3 = 3 ) 一般类型声明: type ( newType int type1 float32 type2 string type3 byte ) Go的基本类型: 布尔型: 64/2~2^64/2-1/0~2^64-1 64位整型: - 长度 8字节 - 取值范围: -2^64/2~2^64/2-1/0~2^64-1 浮点型: float32 / float64 // 多个变量声明的同时赋值 var w,y,c int = 1,2,3 // 省略变量类型,由系统推断类型 var w,y,c = 1,2,3 // 多个变量的声明与赋值的最简的写法 w,y
2.隐藏方法:如果想在派生类中定义一个和基类中重名的方法,但是实现过程不一样,这中操作叫隐藏方法。 3.虚方法和多态:面向对象编程中,都遵循一个原则,依赖导致原则。换句话说就是,程序要依赖于抽象类(pet),而不是依赖于具体类(Dog)如上图。 静态类主要用于基础类库(如数学类 Math类)和扩展方法。可以用数学上的定力来理解。自带的那些。 扩展方法:如果有源代码,直接添加一个新方法。 面向对象编程总结: 1.继承 继承 -- 通过基类对类进行统一管理 接口 -- 将汉武关联的对象进行统一管理 虚方法、多态 -- 对函数进行重写,突出子类的个性 密闭方法 -- 终止继承的一种方式 2.静态类和静态成员。
话题编程 创建发布者 创建订阅者 添加编译选项 运行可执行程序 如何实现一个发布者 初始化ROS节点 向ROS Master 注册节点信息,包括发布的话题名和话题中的消息类型; 按照一定频率循环发布消息 spinOnce(); // 按照循环频率延时 loop_rate.sleep(); ++count; } return 0; } 程序逻辑: 1.头文件 2. 比如想创建如下话题消息 # Person.msg string name uint8 sex uint8 age uint8 unknow = 0 uint8 male = 1 unit female = 2 服务编程 服务编程流程: 创建服务器 创建客户端 添加编译选项 运行可执行程序 ? learning_communication::AddTwoInts srv; srv.request.a = atoll(argv[1]); srv.request.b = atoll(argv[2]
(1) 万能参数 描述 : $args 变量是万能参数它可以识别任意个参数,在PS编程开发中非常有用。 在实际编程过程中我们常常需要限定用户输入类型(防止搞破坏) 基础示例: # 1.使用弱类型参数 function StringContact($str1,$str2) { return $str1 基础示例: function defaultStringContact($str1="WeiyiGeek",$str2="-Computer") { return $str1+$str2 } PS Tips: 如果一个函数返回一个值像其它编程语言一样,这个值包括她的类型信息会直接返回 Tips: 如果遇到多个返回值,Powershell会将所有的返回值自动构造成一个Object数组。 基础示例: # 1.简单的顺序模式 Function output { $input } PS > 1,2,3 | output PS > dir | output # 2.函数将会对管道的结果,做进一步处理例如标记指定目录中的特点格式的文件
本文链接:https://blog.csdn.net/ZhangRelay/article/details/100773009 About ROS 2 Interfaces 关于ROS 2接口 Table Background 背景 2. 2. fieldname2 fieldtype3 fieldname3 For example: 例如: int32 my_int string my_string 2.1.1 Field Types 字段类型 每个常量定义类似于具有默认值的字段描述,但该值永远不能以编程方式更改。
ROS 2 - Unified API ROS 2 - 统一API In ROS 2 the recommended way of writing your code is similar to a nodelet ROS 2. ROS 2中避免了不同API的最大缺点,因为这两种方法在ROS 2中使用相同的API。 您不必以编程方式调用ROS服务,也可以使用命令行工具使用 传递的命令行参数调用ROS服务 Create a custom executable containing multiple nodes which corresponding entries appear in ros2 component list: ros2 component list相应的条目显示在: $ ros2 component
目录 时间格式 性能1 性能2 扩展阅读 注:切勿过早优化! Format("2006-01-02 15:04:05") Performance1 Itoa性能高于Sprint 主要性能差异是由于Sprint针对的是复杂的字符串拼接,底层有个buffer,会在它的基础上进行一些字符串的拼接 // 43.9 ns/op func Benchmark_String2Bytes(b *testing.B) { data := "Hello world" w := ioutil.Discard var buffer bytes.Buffer for n := 0; n < strLen; n++ { buffer.WriteString("x") } } Performance2
Prerequisites 预备基础 Install colcon 安装colcon Linux sudo apt install python3-colcon-common-extensions 安装ROS2 To build the samples, you will need to install ROS 2. Basics 基础知识 A ROS workspace is a directory with a particular structure. (ros2_example_ws)来包含自定义的工作区: Linux/OS X mkdir -p ~/ros2_example_ws/src cd ~/ros2_example_ws Windows 工作空间ros2_examples_ws将叠加在现有的ROS 2安装之上。通常,建议在计划迭代少量软件包时使用覆盖,而不是将所有软件包放在同一个工作区中。
ROS 2概念概述 ROS 2 and different DDS/RTPS vendors ROS 2和不同的DDS / RTPS供应商 About Quality of Service Settings 关于服务质量设置 About ROS 2 Interfaces 关于ROS 2接口 About ROS2 client libraries 关于ROS2客户端库 Logging and logger configuration 日志记录和日志记录器配置 See also http://docs.ros2.org/ for ROS 2 high level documentation. 有关ROS 2高级文档,另请参考http://docs.ros2.org/。 ROS客户端库支持不同编程语言编写的节点进行通信。一个核心的ROS客户端库(ROS client library, RCL)实现了不同语言ROS API所需的通用功能。
ROS 2安装选项 Multiple distributions of ROS 2 are supported at a time. Select your ROS distribution 选择ROS 2发行版本 ROS 2 Bouncy Bolson ROS 2 Crystal Clemmys ROS 2 Dashing Diademata Contributing to ROS 2 core? 对ROS 2核心贡献一份力量? 从二进制包或源代码安装完全功能和可用的ROS 2安装。选项之间的差异取决于将如何使用ROS 2。二进制包是普遍用途,并提供已经编译好的ROS 2安装包。 从源代码编译适用于希望改变或明确省略部ROS 2基础的开发人员。对于不支持二进制文件安装的平台,也建议使用源码编译安装。从源代码编译还可以选择安装最新版本的ROS 2。
of the default severity level 默认严重性级别的命令行配置 Programmatic configuration of individual loggers 单个记录器的编程配置 记录器级别的编程配置。 Programmatic configuration of individual loggers 各个记录器的编程配置 Logger configuration is still under development 下面列出的功能可在当前的ROS 2版本中找到。 以下是最新版本中提供的一些高级别功能的软件包: gazebo_ros_pkgs image_transport navigation2 rosbag2 RQt RViz2
launch system ROS 2 launch启动系统 The launch system in ROS 2 is responsible for helping the user describe ROS 2中的启动系统负责协助用户描述其系统的配置,然后按照描述执行。 Migrating tags from ROS1 to ROS2 从ROS1迁移标签ROS2 launch 启动 Available in ROS 1. 可用于ROS 1。 launch is the root element of any ROS 2 launch XML file. launch 是任何ROS 2启动XML文件的根元素。 ROS 2中没有全局参数概念。因此,它只能嵌套在node标签中。某些属性不支持ROS 2:type、textfile、 binfile、executablecommand。
cd ~/ros2_overlway_ws/src git clone -b rosidl_tutorials https://github.com/ros2/tutorials.git cd rosidl_tutorials
Prequisites 预备基础 Install ROS (Dashing or later) 安装ROS(Dashing或更高版本) Install colcon 安装colcon Setup a workspace create a package named action_tutorials: 设置工作区并创建名为action_tutorials的包: Remember to source your ROS 2 记得要安装ROS 2。 Linux / OSX: mkdir -p action_ws/src cd action_ws/src ros2 pkg create action_tutorials Windows: mkdir -p action_ws\srccd action_ws\src ros2 pkg create action_tutorials Tutorials Creating an Action Writing