我是新来的和红宝石的新手: 我有两个类(类朋友,类列表)和一个名称和年龄的csv-File。当我在csv-File中读取时,我在整个File中创建了一个新的列表对象,并希望在文件的每一行中创建一个新的friends-object。
现在我的问题: 我想将每个友元对象分配给一个变量,但我不知道如何遍历变量。
require_relative'friend'
class List
attr_accessor :list_name
attr_accessor :how_many
def initialize(list_name)
@list_name = list_name
@list = []
end
def add_friend(a_friend)
@list.push(a_friend)
end
def load_friend(from_file)
File.readlines(from_file).each do |line|
add_friend(Friend.from_csv(line))
end
end
end
require_relative 'list'
class Friend
attr_accessor :friend_name
attr_accessor :age
def initialize(friend_name,age)
@friend_name = friend_name
@age = age
end
def self.from_csv(string)
friend_name, age = string.split(',')
Friend.new(friend_name,age)
end
end
这里我试图输出一个朋友:
#-------------------------
def value(place)
@list[place].to_s
end
def print_list
puts @liste.to_s
end
#-------------------------
puts liste1.print_list
puts liste1.wert(1)
#-------------------------
#Output
\#<Friend:0x2b94aa8 @friend_name="Hans", @age="25\n">
\#<Friend:0x2b94a30 @friend_name="Peter", @age="20\n">
\#<Friend:0x2b949a0 @friend_name="Simon", @age="30">
\#<Friend:0x2b94a30 @friend_name="Peter", @age="20\n">
#Expected output
"Hans", 25
"Peter", 20
"Simon",30
"Peter", 20
答案 0 :(得分:0)
当我想放出列表数组时,他给了我对象id,我认为当我将它添加到变量时,我可以打印出该值。
如果您有一组Friend
个实例:
@list = [
Friend.new('Hans', 25),
Friend.new('Peter', 20),
Friend.new('Simon', 30),
Friend.new('Peter', 20)
]
然后通过
打印puts @list.to_s
将通过调用Friend#to_s
输出数组的字符串表示形式,例如:
friend = Friend.new('Hans', 25)
friend.to_s
#=> "#<Friend:0x007ffcc114e608>"
显示了对象ID,因为Friend
没有实现自己的to_s
,因此调用了Object#to_s
:
默认
to_s
打印对象的类和对象id的编码。
要获得所需的输出,您可以通过each
迭代数组并一个接一个地输出属性:
@list.each do |friend|
puts "#{friend.friend_name}, #{friend.age}"
end
在上面的代码中,friend
是您想到的变量。在迭代数组时,each
会将当前元素分配给该变量。
输出:
Hans, 25
Peter, 20
Simon, 30
Peter, 20
答案 1 :(得分:0)
遍历列表:
<?php
include '../sys/conn.php';
$brands = mysqli_query ($conn, "
*(query to select brands name and id)*
") or die ("Query not valid: " . mysqli_error($conn));
mysqli_close($conn);
?>
...
<form role="form" >
<label>Brands List</label>
<select class="form-control" name='brands list'>
<?php while ($listabrand=mysqli_fetch_array($brands)){
echo '<option>'.$listabrand['0'].' - '.$listabrand['1'].'</option>';
}?>
</select>
...
<label>Modify Brand</label>
<input type="text" name='brand-name' class="form-control" required placeholder="Brand Name to modify">
</form></html>