< 返回版块

Aquarian-Age 发表于 2019-11-17 18:18

Tags:trait,struct

//六宫的结构体
pub struct GongWei {
    pub da_an: String,
    pub liu_lian: String,
    pub su_xi: String,
    pub chi_kou: String,
    pub xiao_ji: String,
    pub kong_wang: String,
}

//占求财 大安来不得 流连本无收 白虎支才多 速喜加倍利 小吉本有利 空亡本无收
pub struct ZhanQiuCai {
    qiu_cai: GongWei,
}
//占行人 速喜立时见 白虎在他乡 小吉终须到 空亡即时亡
pub struct ZhanXingRen {
    xing_reng: GongWei,
}

//占其他
pub struct ZhanQiTa {
    qi_ta: GongWei,
}

//实现结构体的共性方法 (这里不套用结构体的话可以用)
pub trait JieDaAn {
    fn jie_daan(&self) -> String;
}
pub trait JieLiuLian {
    fn jie_liulian(&self) -> String;
}
pub trait JieSuXi {
    fn jie_suxi(&self) -> String;
}
pub trait JieChiKou {
    fn jie_chikou(&self) -> String;
}
pub trait JieXiaoJi {
    fn jie_xiaoji(&self) -> String;
}
pub trait JieKongWang {
    fn jie_kongwang(&self) -> String;
}

//解卦 套用了一层GongWei的结构体到这里用不了了
impl JieDaAn for ZhanQiuCai {
    fn jie_daan(&self) -> String {
        format!("占求财-大安:{}", self.da_an)
    }
}
impl JieLiuLian for ZhanQiuCai {
    fn jie_liulian(&self) -> String {
        format!("占求财-留连:{}", self.liu_lian)
    }
}

这个impl方法里面的函数是不是应该先返回一个结构体在结构体中再实现self.da_an之类的呢? 新手 不知道怎么返回结构体 或者该用其他方法? 感谢回复

评论区

写评论
yangweng 2019-11-19 21:30

https://github.com/rust-lang/rust/pull/61883 切换到nightly版 头部添加这个: #![feature(non_ascii_idents)] 你就可以用中文了。

pama 2019-11-18 09:43

拼音也是字母啊. 对以下内容的回复:

作者 Aquarian-Age 2019-11-18 06:22

rust好像不支持汉字 我试过在枚举里面用 结果不行 对以下内容的回复:

songzhi 2019-11-17 19:59

一个建议,既然你用了拼音,为什么不直接用汉字呢?这样看起来还更直观易懂.

作者 Aquarian-Age 2019-11-17 18:30

我解决了 不知道方法对不对 在解法里面加了个.

//解卦
impl JieDaAn for ZhanQiuCai {
    fn jie_daan(&self) -> String {
        format!("占求财-大安:{}", self.qiu_cai.da_an)
    }
}
impl JieLiuLian for ZhanQiuCai {
    fn jie_liulian(&self) -> String {
        format!("占求财-留连:{}", self.qiu_cai.liu_lian)
    }
}

impl JieDaAn for ZhanXingRen {
    //这里需要加一个判断语句 判断落宫数字 落那个宫 就打印那个宫位信息
    fn jie_daan(&self) -> String {
        format!("占行人-大安:{}", self.xing_ren.da_an)
    }
}
impl JieLiuLian for ZhanXingRen {
    fn jie_liulian(&self) -> String {
        format!("占行人-留连:{}", self.xing_ren.liu_lian)
    }
}
1 共 5 条评论, 1 页