DBus中也是类似于静态语言,使用了“强类型”数据格式。在DBus上传递的所有数据都需要声明其对应的类型,下面整理了下,DBus中的数据类型,以及在DBus中声明的数据类型是什么意思。

dbus类型 说明
s string 字符串类型,可以声明 s:
a array 数组,可以声明为 a:
v variant,任意类型,类似于interface
() 结构体,声明时为双括号中间的为类型,可以是多个,例如(ss) 即这个结构体内包含两个字符串属性
b 布尔值
SIGNATURE signature类型
y BYTE
d DOUBLE
t UINT64
x INT64
u UINT32
i INT32
q uint16
n INT16
{} 词典,这里声明为两个括号,中间为其对应的 key value,例如 {sv} 即 key是字符串类型,value是variant类型。
o OBJECT_PATH 对象路径

a{sv} : 是一个数组,为 一个键值对的词典,里面仅有一个

(ssssa{ss}as) 为一个结构体, 里面属性有7个 两个词典(数组),五个字符串类型

(sssbsasa(ss)asba(ssss)asasasasa(ss)b) 这个类型拆开为下:共16个属性

(
s string
s string
s string
b bool
s string
as array only one string
a(ss) two string type in the array
as array only one string
b bool
a(ssss) four string type in the array
as array only one string
as array only one string
as array only one string
as array only one string
a(ss) two string type in the array
b bool
)

ao: array,里面元素仅为一个object_path

golang 中声明一个 Variant

在go中看到variant类型如下

type Variant struct {
sig Signature
value interface{}
}

可以通过 SignatureOf("short")声明一个 Signature

然后在通过:MakeVariantWithSignature(v interface{}, s Signature) Variant 声明 对应的 Variant


注:其他数据类型与golang自己的数据类型一致,数组可以使用slice(类似php,python直接用数组替代即可更灵活)


More Reference

dbus data type

dbus data type conparision perl

最新文章

  1. Silverlight及WPF中实现自定义BusyIndicator
  2. Cucumber测试驱动开发
  3. app标配控制器:UITabBarController
  4. -webkit-text-size-adjust:none;
  5. OS X(EI Capitan)常用快捷键整理
  6. C# - 集合类 - 集合类型
  7. 2016030401 - java性能优化建议
  8. var foo= {} ;foo.method() 和 单例模式有什么区别
  9. IOS NSURL基本操作-备
  10. zXing使用小结
  11. POJ3090_Visible Lattice Points【欧拉函数】
  12. MBProgressHUD各种样式用法
  13. JavaScript Function.arguments 属性详解
  14. iOS----------Xcode9无线调试教程
  15. vue 使用canvas仿芝麻分信用表
  16. select2的设置选中
  17. windows修改自定义格式,有的程序写的不严谨的话会造成出错,就需要重置时间格式
  18. 《DOM Scripting》学习笔记-——第二章 js语法
  19. Intent 传递数据
  20. C++11模板友元语法

热门文章

  1. snoop的基本用法
  2. Math.round() 函数返回一个数字四舍五入后最接近的整数。
  3. C++ template模板编程
  4. wpf & javascript & web
  5. springcloud <zuul2.0静态配置>
  6. vue 之 v-model
  7. GUI编程路线
  8. [考试总结]noip模拟44
  9. RabbitMQ-TTL-死信队列_DLX
  10. project read error(项目读取错误)