Ruby类实例上的等效操作(到Java)
我是一个Java和长期从事C语言的人,一直在努力学习Ruby。至少可以说,这是一次令人谦卑的经历 我有以下课程Ruby类实例上的等效操作(到Java),java,ruby,Java,Ruby,我是一个Java和长期从事C语言的人,一直在努力学习Ruby。至少可以说,这是一次令人谦卑的经历 我有以下课程 class Node @@normal def get_normal( n ) @@normal[ :#n ] end def add_normal( n, value ) @@normal[ :#{n} ] = value end end …我正试图用一种只有Java人才会用的方式来使用它,但也许你能帮我澄清一下。(在Java中,我会: clas
class Node
@@normal
def get_normal( n )
@@normal[ :#n ]
end
def add_normal( n, value )
@@normal[ :#{n} ] = value
end
end
…我正试图用一种只有Java人才会用的方式来使用它,但也许你能帮我澄清一下。(在Java中,我会:
class Node
{
private Map< String, String > normal = new HashMap< String, String >();
public void addToNormal( String key, String value ) { this.normal.put( key, value ); }
public String getNormal( String key ) { return this.normal.get( key ); }
}
...
Node node = new Node();
node.addToNormal( "city", "New Orleans" );
System.out.println( node.getNormal( "city" );
简言之,我从中一无所获
我想在散列中使用Ruby符号作为键,但我想学习的最重要的事情是以我使用上面Java类的方式使用Ruby类。或者,这是错误的想法?如果你能抽出时间,请调整我的类定义和/或我试图用它做什么,或者一般地批评一下。非常感谢太多了!这是你的ruby课程
class Node
def initialize
@normal = {}
end
def get_normal(n)
@normal[:n]
end
def add_normal(n, value)
@normal[:n] = value
end
end
在你的irb中
node = Node.new
node.add_normal(:city, "New Orleans")
puts node.get_normal(:city)
两张纸条
- 您想使用实例变量,而不是类变量来执行类似的操作。实例变量是
,类变量是@my\u var
@@my\u var
如果您将
@normal={}
保留在类级别,那么在执行时它将是nil
,因此您将放入def initialize
,这是类的构造函数。这是您的ruby类
class Node
def initialize
@normal = {}
end
def get_normal(n)
@normal[:n]
end
def add_normal(n, value)
@normal[:n] = value
end
end
在你的irb中
node = Node.new
node.add_normal(:city, "New Orleans")
puts node.get_normal(:city)
两张纸条
- 您想使用实例变量,而不是类变量来执行类似的操作。实例变量是
,类变量是@my\u var
@@my\u var
如果你离开
@normal={}
在类级别,在执行时它将是nil
,因此您输入了def initialize
,这是类的构造函数。这确实有效,并给了我一些可以使用的东西。我发现的Googlizable示例似乎总是带有预初始化的哈希、数组等,带有打印我今天下午没有找到更多的实际例子。非常感谢!欢迎来到Ruby!我自己来自java和C++,我喜欢玩Ruby……每分钟。)这不管用,因为你总是设置和获取相同的密钥。既然你们都在学习,我就让你们去弄清楚原因。是的@JörgWMittag,我知道:)我只是在复制OP想要的东西。这确实管用,给了我一些可以玩的东西。我发现的Googlizable示例似乎总是带有预初始化的哈希、数组等,并带有打印它们的示例调用。今天下午我没有找到更多的实际例子。非常感谢!欢迎来到ruby!我自己来自java和C++,我喜欢玩Ruby……的每一分钟…这不起作用,因为您总是设置和获取相同的密钥。既然你们都在学习,我就让你们去弄清楚原因。是的@JörgWMittag,我知道:)我只是在复制OP想要的东西。