print这个操作是否可以理解为控制台输出类型值

可否理解为这个操作是一个值类型,而不能简单的理解为空操作,设置为Unit,这个应该不能是()类型,让控制台或者调试输出端输出的值,应该也是一个值对象,这个输出端是个栈空间,Cin,Cout应该就是这么理解的吧。可以让程序最终编译输出的时候忽略我们开发过程中设置的调试输出检查的语句啊。print()这个函数返回的就是一个print值类型,而这个值类型的结果就是让控制台显示这个值,相当于计算结果就是这个显示输出,输出的是可视信息,同理音频输出信息也可以是值类型,这样面向值的编程就统一可以用值类型来表达啦啊。不晓得我的理解是否可行。

函数print的声明如下:

fn print[T : Show](input : T) -> Unit

它的返回类型是Unit,而Unit类型只有一个值,即()。moonbit支持函数副作用,print产生的控制台输出的效果是副作用造成的,而不是返回的值。

关于“让程序最终编译输出的时候忽略我们开发过程中设置的调试输出检查的语句”,这个我们后续会考虑在标准库中提供拥有这类功能的函数;或者通过未来的moonbit debugger来避免手工插入输出调试。