今天開發中遇到的乙個關於初始化賦值問題

2021-08-07 15:54:08 字數 1113 閱讀 9368

昨天花時間改了一下專案中篩選條件的樣式和**,然後提交到git上面去了。

不小心就被**看到了,然後發了乙個截圖問我,你這==1是什麼意思?

我解釋說是第一次載入頁面的時候還沒有資料可以初始值,如果直接用stage的數字的話,將來如果後台變了就會沒有效果了,我用1傳到後台,在判斷賦值一遍,至少不會錯。 

他說那我還不如用stage對應的數字,至少不要if ,看你好像好多地方寫了if(我們公司討厭if else ,這是低質量**的表現,只用乙個if還可以容忍,雖然我也討厭if,但是我還是用了)。

我答,但是那樣會很彆扭啊,如果改動了就要全部改。

然後又說了一堆,就是用==1壓根就看不懂要表達的意思,我覺得用stage數字一樣看不懂啊,而且像-1,0, 1這樣的臨界數字會好一點,但是我沒有說了,因為我知道這也不是最好的辦法。

然後**過來幫我看了一下,說你到前端宣告乙個全域性的用常量值,以後有變動也只要改這乙個檔案。我這樣一想,是好一點,總比頁面去判斷等於1 好啊 。

然後按shared下面建了乙個stage-init.profile.ts的檔案 如下:

//公用的stage

var stage: ;

this.stage = ;

export ;

在每個頁面中繼承並呼叫:

import from 『../shared/stage-init.profile』;

賦初始值:

this.criteria.stage = stage.routeassigned;
這樣就搞定了,省掉了一大堆判斷**,有6,7個頁面都要if判斷一下也是心累的。

反思: 在決定寫這個的時候,我只想到了樣式和**的統一,確沒有想到基本一樣的**,是不是可以抽出來,共用。比如用==1這樣的寫法,也是自己想不到更好的辦法,覺得能看起來統一就行。但是我沒有去跟同事討論或者問問同事有沒有更好的想法,自己一意孤行的就做了,結果很簡單的乙個問題,白白浪費了幾個小時。以後一定要多跟同事交流,把自己的想法表達出來。

關於陣列初始化的乙個問題

指定陣列長度之後,如果採用int arr 10 這種方式來初始化,陣列有10個元素,把第乙個元素初始化為0,其餘元素預設初始化為0 不指定陣列長度,採用int arr1 這種方式來初始化,這種建立陣列的方式,不直接指定陣列的元素個數,次數陣列根據初始化的內容,來指定元素個數。因為裡面只有乙個0,所以...

關於結構體初始化的乙個問題

開始自學程式設計,但是程式設計之路困難重重,於是我打算將學習之中遇到的問題以及解決方案貼在這裡,方便以後複習。那我今天總結了一下結構體初始化的幾種方法.如下 include include typedef struct student stu intmain 定義的同時初始化 stu s2 s2 s...

初始化乙個指標的方法

方法1.在用到指標的地方.cpp中 cinfo pinfo pinfo cinfo createinfo 中是類cinfo的定義 ifndef info h define info h include using namespace std class cinfo endif 類cinfo的.cpp...