banner
RustyNail

RustyNail

coder. 【blog】https://rustynail.me 【nostr】wss://ts.relays.world/ wss://relays.world/nostr

Haskell 類型和類別

類型#

:t value

可以查看數據的類型,haskell 是強類型語言

對於函數也是

例如:

fun :: [Char] -> [Char]

對於函數 fun,參數就一定是 char array, 即是 String(等價的)

類型類#

類型類用於定義一個公共的接口

為各種不同的類型提供一組公共特性集。

類似於接口 interface:

class typeclassname a where
    funtionname :: a -> a -> returntype

可以類比於 java 的:

interface<T,R> name{
    R funtion(T t,T t);
}

然後實現類型類的實例類型

instance typeclassname type where
    funtionname arg arg = return

例如:

class EqualClass a where
    equalFun :: a->a->Bool


instance EqualClass Bool where
    equalFun True True = True
    equalFun True False = False
    equalFun False False = True
    equalFun _ _ = False
    --同或

類比 java:

class interfaceImpl<Bool,Bool> implement interface{
    Bool funtion(Bool l, Bool r){
        retutn !(l^r);
        //同或
    }
}

所以,類型類更像一種接口,可以實現出不同類的情況下的函數行為

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。