小编Owe*_*wen的帖子

21
推荐指数
2
解决办法
2万
查看次数

.dist用作某些源代码文件的扩展名是什么意思?

Zend教程中的示例:

  • phpunit.xml.dist
  • local.php.dist
  • TestConfig.php.dist

naming naming-conventions

19
推荐指数
1
解决办法
1万
查看次数

如何使用void`null`或`empty` like元素扩展C++结构/类

我在学习C++时正在实现一个国际象棋模块.在我已经(部分)实施的模块中:

  • 一个Board类(网格,碎片,移动方法等)
  • 枚举类型Colour(黑色/白色)和Rank(KING,QUEEN,...,PAWN)

  • Piece分组颜色和等级的结构(BLACK KING,...,WHITE PAWN).

我现在正在决定如何在电路板(网格)上表示正方形的内容.一个正方形必须包含一个Piece(黑王),或者什么都不包含.考虑的选项:

  • 创建一个struct Square包含两个数据成员,{bool occupied ; Piece piece;}(可能扩展Piece该类).

    我的反对意见:解决方案似乎有点过于沉重,如果广场没有被占用,那么该piece成员应该是空的.我觉得它可能导致某些类方法需要例外,这些方法本来是不必要的.

  • 扩展枚举RankColour包含空选项.

    我的反对:感觉语言不优雅,黑客和不自然.

  • 寻找其他类似的包 std::optional

    我的反对意见:对于编码风格和简洁性,我想避免使用额外的机器.会std::optional甚至是合适的?

  • 使用NULLnullptr表示空方格的状态

    我的反对意见:再次,看起来很丑陋.空方块的内容不是NULL,也不是数字0,不应该与数字26相当......但应该是一个新的,新的常量EMPTY_SQUARE.

这些选项似乎都不合适.是否有更优雅的方式扩展类(如Piece)与其他成员(如EMPTY_SQUARE)没有原始类的数据成员?(还有其他选择吗?)

c++ data-structures

5
推荐指数
1
解决办法
181
查看次数

Scala中不可变值的可变字段

考虑一个简单的类和一个(不可变的)值实例:

class MyClass (var m: Int) {}

val x : MyClass = new MyClass(3)
Run Code Online (Sandbox Code Playgroud)

由于m被声明为变量var),因此mmutable。但是,由于x被声明为,因此它是不可变的。那么是x.m可变的还是不变的?

scala immutability

2
推荐指数
1
解决办法
90
查看次数