我是F#的新手,我正在編寫一些小挑戰來學習有關該語言的基本細節。由於不可變性,我認爲我有一個問題。 場景: 我必須在控制檯中讀取高度線,每行包含一個整數。該整數代表山的大小。 閱讀輸入後,我需要寫出最高山脈的行數。 如果給出的指數是最高的山,那麼大小設置爲零,否則我鬆動。 重複該場景,直到所有的山都將其大小設置爲零。 下面的代碼我寫道: open System
type Mountain =
考慮下面的代碼 class A {
private _f: string;
get f(): string {
return this._f;
}
}
class B {
f: string;
static x(a: A): B {
// I expect an error in next line because A
的strategy for defining an immutable class包含2點: 標記字段作爲私人和最終 不提供setter方法 我困惑的一點是:時候我已經打上領域爲private final ,省略安裝者會給予什麼額外的安全性? 由於該字段是私人的,因此無法在沒有類方法的情況下在類外部訪問該字段。但由於它也是最終的,它在初始化後不能被修改。 假設在下面的類中,如果我沒有在突出顯示的兩
聲納規則squid:S2384提出了一個問題,在此代碼: public Date getCreatedOn() {
return createdOn;
}
以下規則Mutable members should not be stored or returned directly 我明白,我們不應該返回原來的,相反,我們應該返回對象的副本。 在另一方面,聲納不上這個代碼提出問題: p