`
CharlesCui
  • 浏览: 431202 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

常用ice数据结构在ruby中的表现方式

阅读更多
Mapping for User-Defined Types


Mapping for Enumerations

enum Fruit { Apple, Pear, Orange };
The generated Ruby class looks as follows:
class Fruit
include Comparable
Apple = # ...
Pear = # ...
Orange = # ...
def Fruit.from_int(val)
def to_i
def to_s
def <=>(other)
def hash
# ...
end

Given the above definitions, we can use enumerated values as follows:
f1 = Fruit::Apple
f2 = Fruit::Orange

枚举类型变成了ruby的类,通过类方法访问枚举的属性


Mapping for Structures

struct Employee {
long number;
string firstName;
string lastName;
};
The Ruby mapping generates the following definition for this structure:
class Employee
def initialize(number=0, firstName='', lastName='')
@number = number
@firstName = firstName
@lastName = lastName
end
def hash
# ...
end
def ==
# ...
end
def inspect
# ...
end
attr_accessor :number, :firstName, :lastName
end

结构体变成了ruby的类,通过实例方法访问结构体的属性


Mapping for Sequences

sequence<Fruit> FruitPlatter;
We can use the FruitPlatter sequence as shown below:
platter = [ Fruit::Apple, Fruit::Pear ]
platter.push(Fruit::Orange)

Fruit序列变成了ruby中的数组,元素的class是Fruit


Mapping for Dictionaries

dictionary<long, Employee> EmployeeMap;
As for sequences, the Ruby mapping does not create a separate named type for
this definition. Instead, all dictionaries are simply instances of Ruby’s hash
collection type. For example:
em = {}
e = Employee.new
e.number = 31
e.firstName = "James"
e.lastName = "Gosling"
em[e.number] = e

dictionary怎么翻译,字典?呵呵。反正对应ruby是hash。


Mapping for Constants

const bool AppendByDefault = true;
const byte LowerNibble = 0x0f;
const string Advice = "Don't Panic!";
const short TheAnswer = 42;
const double PI = 3.1416;
enum Fruit { Apple, Pear, Orange };
const Fruit FavoriteFruit = Pear;
The generated definitions for these constants are shown below:
AppendByDefault = true
LowerNibble = 15
Advice = "Don't Panic!"
TheAnswer = 42
PI = 3.1416
FavoriteFruit = Fruit::Pear

很容易理解。





分享到:
评论

相关推荐

    ice最简单实现 ruby调用ice接口 - Ruby - language - ITeye论坛

    在Ruby中调用ICE接口,可以让开发者利用ICE的强大功能来构建分布式系统。 描述中的“Ruby - language - ITeye论坛”表明这是一个关于Ruby编程语言的讨论,具体涉及如何在ITeye论坛上分享的关于Ruby调用ICE接口的...

    zeroc ice教程 ice环境配置 Ice中文教程 C++ ICE java ICE ICE入门 ice基础教程 ice开发文档

    在核心概念的后续章节中,文档介绍了ICE模块的具体使用方法,包括名字与作用域的定义、元数据使用等。同时,通过slice编译器的使用案例,使读者对Slice语言的使用有一个直观的认识。 从编程语言映射的角度看,文档...

    严蔚敏数据结构\严蔚敏数据结构答案.doc

    在数据结构中,数组、链表、树、图等是最基本的概念。数组是指一组元素的集合,链表是一种动态分配内存的数据结构,树是一种非线性数据结构,图是一种复杂的数据结构。 3. 算法设计思路:面向交流、面向阅读 在该...

    Ice-3.4.0中文开发手册1

    然后,通过"Hello World"应用的实现,展示了Ice在C++和Java中的基本使用方法。接下来,深入讨论了Slice语言,这是Ice中的接口定义语言,类似于CORBA的IDL。Slice语言用于定义数据类型、接口、操作和异常,并具有自己...

    ZeroC Ice3.7 官方手册英文版加注中文书签

    - **客户端和服务端结构(Client and Server Structure)**:描述了如何在不同编程语言中构建Ice应用程序的基本结构。 - **Ice协议概述(Overview of the Ice Protocol)**:解释了Ice通信协议的工作原理及其特性...

    ice.rar_ice matlab_ice.m matlab_matlab ice_matlab ice_matlab i

    理解并掌握ICE源码有助于我们深入学习数字图像处理,不仅能应用在冈萨雷斯的教材中,也能灵活运用到实际项目中。通过阅读和分析ice.m文件,我们可以学习到MATLAB在图像处理领域的强大功能,以及如何利用这些功能实现...

    数据湖技术Iceberg的探索与实践.pdf

    根据提供的文件信息,本文将重点探讨数据湖技术Iceberg的核心概念、优势以及其在实际应用场景中的价值,并结合Flink等工具进行深入分析。 ### 数据湖技术Iceberg简介 #### Iceberg是什么? Iceberg是一种用于构建...

    尚硅谷大数据技术之数据湖Iceberg-1.1.0.docx

    综上所述,Iceberg 作为一款开源的数据湖技术,不仅解决了传统数据处理中存在的诸多问题,还提供了丰富的功能支持,包括但不限于数据存储与计算引擎插件化、实时流批一体化处理、灵活的表结构演变、模式演化以及分区...

    Ice-3.5.1-el6-x86_64-rpm.tar.gz

    这个压缩包采用tar.gz格式,这是一种在Linux和Unix系统中常用的文件打包和压缩方式。通过`rpm -ivh Ice-3.5.1-el6-x86_64-rpm.tar.gz`命令,用户可以安装这个压缩包中的所有组件。 标签 "Ice" 指的是这个软件的主要...

    ice教程和ice中文版手册

    在本资料包中,"ICE"可能是ICE教程和手册的合集,可能包括了各种格式的文件,如PDF文档、源代码示例、甚至是视频教程。这些内容将系统性地介绍ICE的各个方面,从基本概念到高级特性的实现,帮助用户从零开始学习并...

    Ice 分布式程序设计 中文PDF版_C++_Zero_

    通过ICE IDL,开发者可以声明服务接口,定义数据结构,并将其编译成不同语言的绑定。 4. **ICE编译器和工具链**:ICE提供了一套完整的工具链,包括编译器、代码生成器和调试工具,帮助开发者快速地将IDL转换为实际...

    ice_nine, 深冻结 ruby 对象.zip

    ice_nine, 深冻结 ruby 对象 ice_nine深冻结 ruby 对象 示例require 'ice_nine'# Deep freezes most kinds of objectshash = IceNine.dee

    ICE中间件中文手册

    **ICE中间件中文手册概述** ICE(Integration, Communication, and Embedding...通过深入学习手册,开发者可以有效地利用ICE构建高效、可靠的分布式系统,无论是在企业级应用还是科研项目中,ICE都能提供强大的支撑。

    ZeroC Ice 3.7 手册

    Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于当前互联网领域中一个平台存在多种开发语言编程,以及网站和app应用并存的复杂大型项目。 RPC(Remote Procedure Call ...

    Flink如何实时分析Iceberg数据湖的CDC数据.pdf

    标题中的"Flink如何实时分析Iceberg数据湖的CDC数据"主要关注的是使用Apache Flink进行实时数据处理,以及如何在Apache Iceberg数据湖环境中处理Change Data Capture (CDC)数据。Apache Flink是一款开源流处理框架,...

    ICE中间件在机器人中的应用

    ### ICE中间件在机器人中的应用 #### 摘要与背景 本文由Molaletsa Namoshe等人撰写,探讨了ICE(Internet Communications Engine)中间件在机器人技术领域的应用及其重要性。随着近年来自主多机器人系统的发展,...

    linux平台下的ice通信中间件

    安装这些组件后,开发者可以在RHEL5环境中轻松地构建分布式系统,利用ICE的强大功能进行跨进程、跨网络甚至跨平台的通信。ICE支持透明的网络透明性,这意味着开发者无需关心底层网络细节,只需关注业务逻辑。此外,...

    Zero Ice中文教程

    2. **实时通信**: 由于其低延迟和高吞吐量,Ice在实时游戏和物联网(IoT)应用中表现优异。 3. **微服务架构**: Ice的轻量级和高性能使其成为构建微服务的理想选择。 4. **跨语言通信**: 支持多种编程语言(如C++, ...

    Ice-3.3.1 ICE

    ZeroC公司提供了丰富的文档、教程和论坛,以帮助开发者解决在使用Ice过程中遇到的问题。 ### 冰山一角:Ice概述 #### 2.1 章节概览 第二章提供了Ice框架的全面概述,涵盖了其架构、服务、架构模式和设计原则。这...

    ICE 中文文档(不含ICEGrid)

    本章概述了 ICE 的基本概念及其在分布式系统中的作用。 #### 2.2 Ice 架构 ICE 的架构设计是其成功的关键之一,它包括以下几个核心组件: - **Ice 运行时环境**:负责管理 ICE 应用程序的生命周期。 - **Ice 通信...

Global site tag (gtag.js) - Google Analytics