小编Mik*_*nke的帖子

Kotlin数据类包装

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文档的成语/编码风格部分,但却找不到任何相关内容(也许我已经略过了它).什么是最佳做法?

谢谢!

java convention coding-style kotlin

7
推荐指数
2
解决办法
1338
查看次数

在Haskell中检查功能

我正在做一些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)

我该怎么做?

haskell

3
推荐指数
1
解决办法
117
查看次数

检查两个数组是否相等-C

我将如何使用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 arrays

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

正确使用malloc

我正在努力刷新我的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.当我需要返回虚空时,它会让我感到困惑.

c malloc dynamic-allocation

0
推荐指数
2
解决办法
123
查看次数