F#基本类型——Structure

本文介绍了F#中结构体的基本概念及其与C#中的struct的相似之处。文章详细解释了结构体的两种定义方式,并强调了结构体成员变量的声明方式及默认值的存在。

Structure是F#的基本类型之一,和C#中的struct对应,其语法结构如下:

    [ attributes ]
    type [accessibility-modifier] type-name =
        struct
            type-definition-elements
        end

一个简单的struct定义为

    type Point3D =
        struct
            val x: float
            val y: float
            val z: float
        end

但这种方式并不是lightweight,实际也很少这么使用,通过lightweight语法简化后的形式为:

    [ attributes ]
    [<StructAttribute>]
    type [accessibility-modifier] type-name =
        type-definition-elements

因此,我们用这种方式也能到达上述同样的效果:

    [<StructAttribute>]
    type Point3D2 =
        val x: float
        val y: float
        val z: float

Structure不能使用let或do绑定,只能通过val声明成员变量。因此,其各成员是有默认值的。另外,它也能说明成员函数,由于这部分内容和class比较类似,这里就不做详细介绍了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值