Flutter 在flatter中,我们如何避免使用很长的对象/属性名称编写样板代码?

Flutter 在flatter中,我们如何避免使用很长的对象/属性名称编写样板代码?,flutter,dart,Flutter,Dart,例如: Text(objectNameVeryLong.attributeNameVeryLong.isEmpty?“对不起,它是空的”:objectNameVeryLong.attributeNameVeryLong)真是一块意大利面条 但是,dart语言不支持“内联表达式”语法,如: Text({var a=studentId.toString();a=a.isNotEmpty?a:“empty”;})//最后一行成为表达式返回值 这里的{code}最终成为一个变量 我提出的解决方案是: 内

例如:

Text(objectNameVeryLong.attributeNameVeryLong.isEmpty?“对不起,它是空的”:objectNameVeryLong.attributeNameVeryLong)
真是一块意大利面条

但是,dart语言不支持“内联表达式”语法,如:

Text({var a=studentId.toString();a=a.isNotEmpty?a:“empty”;})//最后一行成为表达式返回值

这里的{code}最终成为一个变量

我提出的解决方案是:

  • 内联调用匿名函数/闭包,如
  • Text((){var a=studentId.toString();a=a.isNotEmpty?a:“空”;返回a;}())

  • 在课堂上引入一个变量(跳线),但在我看来,这不是一个很好的颤振练习,因为变量赋值大部分时间发生在参数传递中

  • 关于这个问题还有其他解决办法吗?或者对于这个问题有什么dart语言实验性的建议吗?

    在我看来,它还不错,因为它更明确,有助于理解代码(但很难看)。我的解决办法是:

  • 创建getter:
  • 创建辅助函数:

  • 在我看来,它还不错,因为它更明确,有助于理解代码(但它很难看)。我的解决办法是:

  • 创建getter:
  • 创建辅助函数:

  • 你不能更简洁地命名你的对象和属性吗?@ColeHenrich有时API会变得臃肿,或者后端开发人员决定这样命名。我们的VO类别无选择,只能保持命名一致……难道你不能更简洁地命名你的对象和属性吗?@ColeHenrich有时API会变得臃肿,或者后端开发人员决定这样命名。我们的VO类别无选择,只能保持命名一致。。。
    T get getterWithReasonableNameLong => this.attributeNameVeryLong.isEmpty ? "Sorry It's Empty" : this.attributeNameVeryLong;
    
    // ...
    
    Text(objectNameVeryLong.getterWithReasonableNameLong)
    
    T buildMessage(message) => message.isEmpty ? "Sorry It's Empty" : maessage;
    
    // ...
    Text(buildMessage(objectNameVeryLong.attributeNameVeryLong))