Kotlin介绍了数据类的精彩概念.这些类派生的equals()/hashCode(),toString(),getters()/setters(),和copy()基于构造函数声明的属性功能:
data class KotlinUser(val name: String, val age: Int)
在Java中,这看起来像:
public class JavaUser {
public JavaUser(String name, Int age) {
...
}
//getters
//setters
//equals()/hashCode()
//toString()
}
Run Code Online (Sandbox Code Playgroud)
我的问题是关于在Kotlin中打包这些数据类文件.来自Java我将存储JavaUser在自己的Class文件中:org.package.foo.JavaUser
由于数据类的简单性,我们是否在Kotlin中以相同的方式存储数据类文件?(即org.package.foo.KotlinUser每个数据类的单独文件).另外,是否不赞成将多个数据类存储在一个类文件中?:
org.package.foo.DataClasses 包含:
data class Foo(val a: String, val b: String)
data class Bar(val a: Int, val b: Int)
Run Code Online (Sandbox Code Playgroud)
我环顾了Kotlin文档的成语/编码风格部分,但却找不到任何相关内容(也许我已经略过了它).什么是最佳做法?
谢谢!
我正在做一些CS作业,这是我第一次使用Haskell,所以我有一个问题.
我已经声明了一种数据类型
data Date = Date Int Int Int deriving (Show)
Run Code Online (Sandbox Code Playgroud)
我有这个功能testdate:
testdate :: Date -> Maybe Date
testdate (Date m d y) = if 1 <= m && m <= 12 && 1 <= d && d <= 31 && y >= 0
then
True
else
False
Run Code Online (Sandbox Code Playgroud)
我想创建一个新函数来检查testdate是true还是false,然后返回给你日期.就像是:
betterdate :: Date -> Maybe Date
betterdate (Date m d y) if (testdate = True) //I know this part doesn't work
then Just (Date m d y)
else Nothing
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我将如何使用memcmp检查两个数组的相等性?
bool array_is_equal(const void *array_one, void *array_two, const size_t elem_size, const size_t elem_count)
Run Code Online (Sandbox Code Playgroud)
我有这样的事情:
int i;
for(i = 0; i < elem_count; i++){
if(memcmp(array_one, array_two, elem_size) == 0) {
return true;
}
i++;
}
return false;
Run Code Online (Sandbox Code Playgroud)
其中elem_size是每个数组元素在数组1中使用的字节数
我正在努力刷新我的C技能.假设我正在尝试执行a malloc和a calloc:
void* allocate_array(size_t member_size, size_t nmember,bool clear)
if(clear){
void *cal = calloc(nmember, sizeof(member_size));
return cal;
} else if(!clear) {
void *mal = (void *)malloc(sizeof(member_size));
return mal;
}
Run Code Online (Sandbox Code Playgroud)
我想我在这里正确使用calloc,但我不确定我是否正确使用malloc.当我需要返回虚空时,它会让我感到困惑.