首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是“字段”?“字段”与“字段值”

什么是“字段”?“字段”与“字段值”
EN

Stack Overflow用户
提问于 2009-04-27 20:26:05
回答 4查看 11.6K关注 0票数 0

在护照中有一个字段: Name,该字段有一个值John

我断言,将这种关系描述如下是正确的:

字段

  1. 有一个名称(名字),
  2. 有一组有效值(例如,由regex定义的)。{1,30}
  3. 有一个描述(在人的全名中排在第一位)

Passport是一组对(字段:字段值),因此:

  • 护照有一个字段"First
  • has a value for“字段”Name Name"

这里的要点是,不正确的说:

“名值为约翰”;

正确的方法(概念上/学术上)是这样说的:

护照的“名”值为'John‘。

实际上,它的意思是(伪C#):

代码语言:javascript
复制
struct Passport {
    Map<Field, object> fieldValues;
}

struct Field {
    string Name;
    string Description; 
    bool IsValidValue(object value);
}

问:,这有意义吗?有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2009-04-27 20:38:09

这是相当主观和完全上下文敏感,似乎是一个愚蠢的事情挑剔。

不管是否正确,如果我和同事讨论“护照”时,如果他们每次说"firstName是'john'“并告诉我说”护照的名字字段是'john'",我就会向他们扔东西。你会觉得很烦人。

票数 1
EN

Stack Overflow用户

发布于 2009-05-06 18:27:08

如果您要建模这样的东西,那么您可以看看java或c#的反射API。这和你描述的非常相似。类有一组字段,字段有名称、类型和其他属性,而不是值。对象是类的实例,您可以向对象请求指定字段的值。同一类的不同对象具有相同字段的值,因此可以说它们共享字段。因此,如果您试图建模基于类的OOP,那么您可能是正确的。

然而,这并不是执行OOP的唯一方法。基于原型的OOP看起来不同,因为没有类,只有对象,所以对象包含有值的字段,所以如果您说对象包含字段和字段有值,那么没有太大的区别。

所以答案是“这有意义吗?”我认为是“是”,因为类似的东西正在反思,并被广泛使用。它是对还是错-取决于你的需要。

UPD:关于"value = PassportField“和"value = Passport.Field.Value”,我想再介绍一本护照,以表明这一点

代码语言:javascript
复制
firstNameField = PassportClass.Fields["FirstName"]
myName   =   myPassport[firstNameField]
yourName = yourPassport[firstNameField]

假设两本护照都有相同的字段,这是有意义的。有不同的护照,不同的领域可能有一种感觉,只是一个不同的。

票数 0
EN

Stack Overflow用户

发布于 2009-05-06 18:50:12

Well..not真的在c#见Scott Bellware's answer to my question about C# not being Object Oriented (kinda)

在C#中,护照是一个类,所以说它是完全合理的

  1. "The Passport有一个字段FirstName“
  2. 用于特定实例"FirstName value is John”。

这里,第一个子句描述类,下一个子句描述对象。在一种更面向对象的语言中,比如ruby,我想说“护照有'John‘值的字段’Name'”是等价的,你只是描述两个对象-- Passport原型,以及在同一个句子中的实例。

不过,我自己也很困惑。这个问题的措辞很奇怪,因为一本护照无疑会有更多的东西,而不仅仅是它的领域,例如,一个长期而持久的身份。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/795146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档