国外优秀购物网站,投票网站源码php,集团网站制作方案ppt,计算机网页设计师证书声明#xff1a;本系列文章全部参考自官方教程#xff0c;由于缺乏中文资料而且本人E文实在太菜#xff0c;对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程#xff0c; 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户… 声明本系列文章全部参考自官方教程由于缺乏中文资料而且本人E文实在太菜对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户名跟密码为anonymous 转自http://blog.csdn.net/kraussyin/article/details/47036363 Overview 我们都知道复杂的数据跟数据集数据都是建立在简单的数据类型之上的在学习Q语言的过程中深入理解列表以及列表的操作是非 常重要的。虽然概念是很简单的但是很快你就会发现其实并不简单。 Introduction to Lists 列表是一个简单跟有序的数据集简单的说列表里面存储着一序列的有序的基本数据类型数据或者其它数据类型的数据接下来我们将人简单的基本数据类型列表讲起。 List Definition and Assignment 一个列表的写法是在一个小括号里面通过分号将各个元素通过分号分隔开为了可读性我们通常在每个元素后面敲上一个空格。事实上一个简单的数据类型的值我们也可能把它看成是一个只拥有一个元素的列表 e.g. q)(1;2;3) q)(a;b;c;d) q)(Life;the;Universe;and;Everything) q)(-10.0; 3.1415e; 1b; abc; z) 在上面的例子中前三个都只包含统一的数据类型但最后一个却不是它是一个复合类型的列表另外还可以有内联的统一数据类型的列表跟内联的混合的数据类型列表。另外需要注意事的是 (1; 2) 跟 (2; 1) 是两个不同的列表也就是说列表并不是无序的。 我们还可以将列表赋值给一个变量写法跟声明变量并赋值没什么两样。 e.g. q)L1:(1;2;3) q)L2:(a;b;c;d) q)L3:(Life;the;Universe;and;Everything) q)L4:(0b;1b;0b;1b;1b;0b) q)L5:(-10.0;3.1415e;1b;abc;z) 甚至我们还可以这样子写 q)L:100 200 300 / 一个int类型列表 q)H:1 2 255h / 一个short类型列表 q)F:123.4567 9876.543 99.99 / 一个float类型列表 q)bits:01011b / 一个boolean类型列表 q)bytes:0x20a1ff / 一个byte类型列表 q)symbols:LifetheUniverseandEverything / 一个symbol类型列表 q)chars:so long / 一个char类型列表 count 通过count方法可以获取一个列表所包含的元素的数量。有关Functions的内容将在下一节讲到。 e.g. q)L1:(1; 2; 3) q)count L1 3 Empty List 有的时候我们想创建一个不包括任何元素的列表的时候怎么办其实很简单只是不往小括号里面添加元素就行了。 e.g. q)L:( ) q)count L 0 以接下来的章节我们还会讲到如何去创建一个指定类型的空列表。 Indexing 访问一个列表元素的时候我们可以通过索引跟大多数语言一样索引通常都是从 0 开始的Q 语言也不例外一个包含了 n 个元素的列表它的有效索引就是 0 到 n-1。 下面的例子将演示了如何通过索引去获取列表里的一个元素 e.g. q)L:(-10.0;3.1415e;1b;abc;z) q)L[0] -10f q)L[1] 3.1415e q)L[2] 1b q)L[3] abc q)L[4] z q)L[5] 0n 如果索引超过了有效范围那么将会返回一个空值 e.g. q)L[5] 0n 当索引值为null的时候将会返回所有的元素 e.g. q)L[] -10f 3.1415e 1b abc z 在语法上我们可以使用来表示null所以L[]跟L[::]结果一样。 同样我们也可以通过索引给列表中的某一个元素重新赋值需要注意一点对于简单列表也就是具有统一数据类型的列表我们赋值的时候只能是给它赋上同样类型的数据。 e.g. q)L1:1 2 3 q)L1[2]:42 q)L1 1 2 42 q)L1[2]:other / 只能是int类型的数据 type 我们也可以通过现有的列表来创建新的列表。 e.g. q)L1:(1;2;100 200) q)L2:(1 2 3;abc) q)L3:(L1;L2) q)L3 (1;2;100 200) (1 2 3;abc) 关于列表的内容就先写到这里将它定为初级篇因为以上的内容只要是使用过数组的朋友都还是比较容易理解和应用的接下来会有一篇文章继续对List做更深入的讲解。敬请期待