gpt4 book ai didi

parameters - 函数中参数顺序的约定

转载 作者:行者123 更新时间:2023-12-01 21:15:04 24 4
gpt4 key购买 nike

在编写函数时,我的大脑总是花几毫秒来检查对于给定函数来说哪种参数顺序最适合。

我应该写:

    public Comment AddComment(long userID, string title, string text)

或者可能:

    public Comment AddComment(string title, string text, long userID)

为什么不:

    public Comment AddComment(string title, long userID, string text)

在为您的函数订购参数时,您是否遵循任何规则?您将哪个参数放在前面,哪个参数放在后面?

最佳答案

我通常只应用 3 条规则:

  • 如果一种语言允许将哈希/映射/关联数组作为单个参数传递,请尝试选择传递它。这对于具有 >=3 个参数的方法特别有用,特别是当这些相同的参数将传递给嵌套函数调用时。

    这样可以更轻松地维护 - 添加另一个参数(特别是当在 10 层深度的嵌套函数调用之间传递相同的参数列表时)涉及更改代码中的 1 个位置(最终调用者),而不是更改每个函数获取该列表并将其传递到其他地方。

    这有一个小缺点,即在 C++ 等语言中没有类型检查(例如,您的编译器无法检查哈希/映射中是否包含预期键类型的正确类型的值) - 如果这是一个问题,您可以将该参数映射封装为结构/类。

  • 如果一种语言允许参数使用默认值(例如 C++、Sybase 存储过程),显然您将可选参数保留在最后,并且参数越不可能用值指定,它应该出现在列表的后面。

  • 否则,请按照最具可读性/可维护性的逻辑分组对它们进行排序。

    这可能有点主观 - 例如下一个/上一个体重/高度可以同样有效地排序 next_weight,next_height, prev_weight, prev_heightnext_weight, prev_weight, next_height, prev_height。同样,三个主要考虑因素是可读性/逻辑性以及易于维护。

    就可读性而言,您可以按类型或含义对它们进行排序。

    就“逻辑性”而言,您可以按含义对它们进行排序(例如,将所有“下一个”组合在一起,或将所有高度组合在一起),或者按其他地方强加的某种顺序 - 例如,相应数据库表中的列顺序,或GUI 中的字段顺序(更糟糕的是,因为它可能会改变)。

    就维护而言,如果没有明显有意义的顺序,字母数字顺序是最好的,因为它允许非常简单地通过扫描找到参数,特别是决定在哪里插入新参数。

关于parameters - 函数中参数顺序的约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2796557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com