学习Ruby和Do块.来自很多c#我没有看到太多提醒我的Do,但是随后我想到了With语句和我希望在c#中的一个(也许它是,我从未见过它?).Do和With这两个陈述看似相似.
VB中的With语句与Ruby中的Do块相同吗?
编辑:
举个例子,ActiveRecord对象,映射到数据库表:
TheBook.new do |book|
book.title = "my book"
book.writer = "some author"
end
Run Code Online (Sandbox Code Playgroud)
我明白从看到它我会得到什么.我知道我将在我的数据库中获得上述信息的新记录,但我不知道为什么.为什么这本书成为了稿件?我是从右到左阅读的吗?
作为一名C#开发人员,我自己没有太多的Ruby经验,我理解你的困惑.
如果您熟悉C#2.0中的匿名委托和C#3.0中的lambda表达式的概念,那么这将更有意义.
您的Ruby ActiveRecord示例可以使用匿名委托在C#2.0中表示:
TheBook.New ((delegate TheBook book){
book.title = "my book";
book.author = "some author";
});
Run Code Online (Sandbox Code Playgroud)
或者在C#3.0中使用lambda表达式如下:
TheBook.New (book => {book.title = "my book"; book.author = "some author"});
Run Code Online (Sandbox Code Playgroud)
当你有方法期望函数作为参数或C#中的委托时,基本上"do"块就会发挥作用.
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |