Visual Basic 6.0中缺省的參數(shù)傳遞機(jī)制是什么?在 Visual Basic 6.0 中,如果沒(méi)有為過(guò)程參數(shù)指定 ByVal 或 ByRef,則傳遞機(jī)制默認(rèn)為 ByRef 。這就允許在調(diào)用程序中修改已傳遞到過(guò)程中的變量 。
公開(kāi)變量進(jìn)行修改會(huì)導(dǎo)致程序出現(xiàn)缺陷 。在下例中,傳遞機(jī)制默認(rèn)為 ByRef,ElapsedSeconds 的值被 MinutesPastHour 修改且 ElapsedSeconds 由 MsgBox 錯(cuò)誤顯示:
Function MinutesPastHour(Seconds As Integer) As Integer
Dim Hours As Integer = Seconds \ 3600
Seconds = Seconds Mod 3600
MinutesPastHour = Seconds \ 60
End Function
' ...
ElapsedSeconds = CInt(Timer( ))' Integer seconds since midnight.
ExtraMinutes = MinutesPastHour(ElapsedSeconds)
MsgBox "Total seconds: " & ElapsedSeconds & _
"; minutes past hour: " & ExtraMinutes
傳遞參數(shù) ByRef 時(shí),允許過(guò)程在調(diào)用程序中進(jìn)行更改,這可導(dǎo)致意外行為 。而且,如果該過(guò)程調(diào)用另一個(gè)過(guò)程,并傳遞同一個(gè)參數(shù)ByRef,則會(huì)增加無(wú)意中更改原始變量的可能性 。
VB 里ParamArray和Byref有什么區(qū)別ParamArray,使用 ParamArray 關(guān)鍵字可以提供任意數(shù)目的參數(shù) 。ParamArray 關(guān)鍵字不能與 ByVal,ByRef , 或 Optional 一起使用 。ByRef , 表示該參數(shù)按地址傳遞 。ByRef 是 Visual Basic 的缺省選項(xiàng) 。ParamArray 關(guān)鍵字用于下列語(yǔ)句:Declare 語(yǔ)句Function 語(yǔ)句Sub 語(yǔ)句使用 ParamArray 關(guān)鍵字可以使函數(shù)接收數(shù)目可變的參數(shù) 。在下面的定義中 , FirstArg 是按值傳遞的 。Function CalcSum(ByVal FirstArg As Integer, ParamArray OtherArgs())Dim ReturnValue '如果用如下代碼調(diào)用該函數(shù):ReturnValue = https://www.zaoxu.com/jjsh/bkdq/CalcSum(4, 3 ,2 ,1)'則局部變量被賦予以下值:FirstArg = 4 , 'OtherArgs(1) = 3 , OtherArgs(2) = 2,等等 。'假設(shè)缺省數(shù)組下界 = 1 。ByRef 關(guān)鍵字用于下列語(yǔ)句:Call 語(yǔ)句Declare 語(yǔ)句Function 語(yǔ)句Property Get 語(yǔ)句Property Let 語(yǔ)句Property Set 語(yǔ)句Sub 語(yǔ)句
VB中ByVal與ByRef有什么區(qū)別

文章插圖
1、意思上的區(qū)別ByVal是值傳遞,ByRef是地址傳遞 。在交換函數(shù)里單純交換值時(shí)沒(méi)有效果的,需要交換對(duì)應(yīng)的地址 。2、賦值在函數(shù)內(nèi)部,引用參數(shù)(ref)被視為初始已賦值,輸出參數(shù)(out)被視為初始未賦值 。3、用法引用參數(shù)(ref)在可以作為引用參數(shù)在函數(shù)成員調(diào)用中傳遞之前,必須已明確賦值,而輸出參數(shù)(out)在可以作為輸出參數(shù)在函數(shù)成員調(diào)用中傳遞之前不一定要明確賦值,在該函數(shù)成員正常返回前都必須已明確賦值 。擴(kuò)展資料:byval和byref的用法BYREF 是在過(guò)程中使用的數(shù)值和外面的數(shù)值相等了,并且一旦在過(guò)程中改變了這個(gè)數(shù)值,那么引用過(guò)程的數(shù)值也修改了 。一般來(lái)說(shuō)缺省就是BYREF 。優(yōu)點(diǎn):節(jié)約一個(gè)內(nèi)存地址的大?。?并且實(shí)現(xiàn)數(shù)值的修改 。BYVAL 是為這個(gè)變量在內(nèi)存中重新開(kāi)辟一個(gè)地址進(jìn)行存儲(chǔ) 。在過(guò)程中修改這個(gè)數(shù)值不會(huì)影響這個(gè)數(shù)值 。應(yīng)當(dāng)聲明成過(guò)程,再PS一下,修改一下:(1)ByRef例如:SUB byr(byref a as integer)'BYREF不寫也是對(duì)的a=10end SUB然后如果我們這樣用Dim x as integerbyr xmsgbox x輸出10(2)ByVal例如:SUB byv(byval a as integer)a=10end SUB然后再Dim x as integerbyv xmsgbox x
visual basic 和 visual studio 又什么區(qū)別?

文章插圖
一、主體不同1、visual basic:是Microsoft公司開(kāi)發(fā)的一種通用的基于對(duì)象的程序設(shè)計(jì)語(yǔ)言 。2、visual studio :是美國(guó)微軟公司的開(kāi)發(fā)工具包系列產(chǎn)品 。二、特點(diǎn)不同1、visual basic:是結(jié)構(gòu)化的、模塊化的、面向?qū)ο蟮摹瑓f(xié)助開(kāi)發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語(yǔ)言 。是一種可用于微軟自家產(chǎn)品開(kāi)發(fā)的語(yǔ)言 。2、visual studio :VS是一個(gè)基本完整的開(kāi)發(fā)工具集 , 包括了整個(gè)軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開(kāi)發(fā)環(huán)境(IDE)等等 。三、作用不同1、visual basic:擁有圖形用戶界面(GUI)和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù) , 或者輕松的創(chuàng)建Active X控件,用于高效生成類型安全和面向?qū)ο蟮膽?yīng)用程序2、visual studio :所寫的目標(biāo)代碼適用于微軟支持的所有平臺(tái),包括Microsoft Windows、Windows Mobile、Windows CE 。參考資料來(lái)源:百度百科-Visual Studio參考資料來(lái)源:百度百科-Visual Basic
VBA中ByVal和 ByRef有什么區(qū)別?ByVal表示該參數(shù)按值傳遞 。ByRef表示該參數(shù)按地址傳遞 。ByRef 是 Visual Basic 的缺省選項(xiàng) 。按值:一種將參數(shù)值而不是將地址傳遞給過(guò)程的方式,這就使過(guò)程訪問(wèn)到變量的復(fù)本 。結(jié)果,過(guò)程不可改變變量的真正值 。按地址:一種將參數(shù)地址而不是將值傳遞給過(guò)程的方式,這就使過(guò)程訪問(wèn)到實(shí)際的變量 。結(jié)果,過(guò)程可改變變量的真正值 。除非另作說(shuō)明,否則按地址傳遞參數(shù) 。簡(jiǎn)明一點(diǎn)說(shuō):以ByVal傳遞給過(guò)程,過(guò)程里有代碼對(duì)這個(gè)變量做了更改,在過(guò)程結(jié)束返回后這個(gè)變量還是調(diào)用過(guò)程前的值,不會(huì)變化 。以ByRef傳遞給過(guò) 程,過(guò)程里有代碼對(duì)這個(gè)變量做了更改,在過(guò)程結(jié)束返回后這個(gè)變量的值就是過(guò)程里改成的那個(gè)值 。下面舉個(gè)例子:(1)ByVal示例Sub TmpByVal()Dim a As Stringa = "2"Call FunByVal(a)MsgBox CStr(a)End SubFunction FunByVal(ByVal a)a = "3"End Function(2)ByRef示例Sub TmpByRef()Dim a As Stringa = "2"Call FunByRef(a)總結(jié):vb(vba)中,除非你有足夠的理由和有了足夠的準(zhǔn)備接受傳址得來(lái)的值,都要使用ByVal來(lái)傳值,ByRef意味夢(mèng)魘的開(kāi)始!但不要因?yàn)榕?ByRef就不用,而是要注意出現(xiàn)夢(mèng)魘時(shí)要想到那可能是使用ByRef的結(jié)果 。
VB在過(guò)程中optional的作用和用法 property是干什么的optional:
在VB過(guò)程中,optional的作用是用來(lái)說(shuō)明該形參是否可以缺?。?調(diào)用函數(shù)時(shí)對(duì)應(yīng)的實(shí)參是否可以缺省以及缺省值是什么) 。其用法說(shuō)明如下:
使用Optional關(guān)鍵字的VB過(guò)程的一般格式為(省略了一些無(wú)關(guān)的選項(xiàng)):
Sub/Function 過(guò)程名(必選參數(shù)說(shuō)明, Optional 參數(shù)名1 [As 類型 [=默認(rèn)值]], Optional 參數(shù)名2 [As 類型 [=默認(rèn)值]],...)
'過(guò)程體
End Sub/Function
例如:
Sub s(A As Integer, Optional B, Optional C As Integer, Optional D As Integer=50)
'過(guò)程體
End Sub
調(diào)用過(guò)程s時(shí),只有對(duì)應(yīng)于第一個(gè)形參(A)的實(shí)參是必須的,對(duì)應(yīng)于后面三個(gè)形參(B,C,D)的實(shí)參都是可選的 , 因此,如下調(diào)用語(yǔ)句都是正確的:
Call s(10) 'A的值為10,B的類型和值為未知,C的值為0,D的值為50
Call s(10, 20) 'A的值為10,B的值20,C的值為0,D的值為50
Call s(10, 20, 30) 'A的值為10,B的值20,C的值為30,D的值為50
Call s(10, 20, 30, 40) 'A的值為10,B的值20,C的值為30 , D的值為40
Call s(10, 20 , , 40) 'A的值為10,B的值20,C的值為0 , D的值為40
但語(yǔ)句
Call s
是錯(cuò)誤的 。
此外,應(yīng)該指出 , 用Optional指定的可選的參數(shù)一般都應(yīng)指定參數(shù)的類型,如果可選的參數(shù)沒(méi)有指定類型(比如上例中的形參B),則在過(guò)程體中一般需要使用IsMissing函數(shù)來(lái)對(duì)其進(jìn)行測(cè)試,否則有可能引發(fā)錯(cuò)誤 。
Property:
關(guān)鍵字Property用來(lái)為自定義類定義屬性過(guò)程,屬性過(guò)程用來(lái)設(shè)置或獲取類中數(shù)據(jù)成員的值 。
由于一般用戶不太需要自定義類,所以暫時(shí)可以不必關(guān)心Property的具體用法 。
vb中“timer”怎么用?打開(kāi)比方,timer如同一個(gè)循環(huán)語(yǔ)句,它的循環(huán)變量是時(shí)間,即每隔一段時(shí)間 , 就執(zhí)行一次timer中的語(yǔ)句 。
例如:
1、在窗體上添加一個(gè)timer控件 , 默認(rèn)名稱為Timer1 。
2、將Timer1的Interval屬性設(shè)置為1000,即每隔1000毫秒(1秒)觸發(fā)一次 。
3、在Timer1的Timer()事件中編寫如下代碼
Private Sub Timer1_Timer()
Print Time
End Sub
4、運(yùn)行該程序 , 窗體上每隔1秒就會(huì)輸出一次系統(tǒng)當(dāng)前時(shí)間 。
VB中的Optional,C#中怎么寫C#不允許可選參數(shù)
但是可以有方法重載
public vod aaa(){
aaa(10);//這樣就能達(dá)成optional類似的目的
}
public void aaa(int value)
{
}
VB的可選參數(shù),這個(gè)是什么意思Optional 表示該參數(shù)為可選的,即不一定必須有的,當(dāng)Optional 時(shí),參數(shù)可設(shè)置默認(rèn)值
Optional FindAll As Boolean = False,和Optional FindAll As Boolean是同效的 , 因?yàn)锽oolean 的默認(rèn)值就是False,如同Integer的默認(rèn)值為0一樣 。
Optionala As Integer= 1000,如果未指定a的值,則a的值默認(rèn)為1000:
如:
function aaaa(Optional a As Integer= 1000)
aaaa=a*2
end function
msgbox aaaa , 結(jié)果為2000
msgbox aaaa(100) , 結(jié)果為200
function bbbb(Optional a As Integer)
bbbb=a*2
end function
msgbox bbbb,結(jié)果為0
msgbox bbbb(100),結(jié)果為200
vb中 optional x as boolean是什么意思[Public | Private | Friend] [Static] Function
name [(arglist)] [As type]
[statements]
[name
= expression]
[Exit Function]
[statements]
[name = expression]
End Function
[Private | Public | Friend] [Static] Sub
name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
其中的 arglist
參數(shù)的語(yǔ)法以及語(yǔ)法各個(gè)部分如下:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
Optional
可選的 。表示參數(shù)不是必需的 。如果使用了該選項(xiàng),則 arglist
中的后續(xù)參數(shù)都必須是可選的,而且必須都使用 Optional 關(guān)鍵字聲明 。如果使用了 ParamArray , 則任何參數(shù)都不能使用 Optional 。
ParamArray
可選的 。只用于 arglist
的最后一個(gè)參數(shù) , 指明最后這個(gè)參數(shù)是一個(gè) Variant 元素的 Optional 數(shù)組 。使用
ParamArray 關(guān)鍵字可以提供任意數(shù)目的參數(shù) 。ParamArray 關(guān)鍵字不能與
ByVal,ByRef,或 Optional 一起使用 。
silence是什么意思及用法silence 英 [ˈsaɪləns]美 [ˈsaɪləns]
n.沉默,無(wú)言,無(wú)表示,無(wú)聲,沉靜 , 肅靜,寂靜,緘默;無(wú)音信 , 失去聯(lián)系,忘卻,湮沒(méi) , 無(wú)表示,無(wú)音訊;[樂(lè)]停止
vt.使安靜;使沉默;壓制
例句:
She breathed deeply, savouring the silence.
她深深地吸了口氣,細(xì)細(xì)品味著這寧?kù)o 。
如何更好地使用Java 8的OptionalOptional的出現(xiàn)不僅僅是為了解決一般對(duì)象的null判斷的,應(yīng)該是更好的配合java8的函數(shù)式風(fēng)格編程可以看到Optional里出現(xiàn)的靜態(tài)方法都是這樣的比如以前你從數(shù)據(jù)庫(kù)里獲取一個(gè)對(duì)象,然后對(duì)他進(jìn)行操作,可能是這樣的代碼Object o = dao.find()if(o != null){doSomething(o)}但是用函數(shù)式編程來(lái)寫就該是這樣Optional o = dao.find()o.ifPresent(item->doSometing(o));再舉個(gè)例子,若你從數(shù)據(jù)庫(kù)查出來(lái)的對(duì)象要是空的話需要報(bào)錯(cuò),以前會(huì)這樣寫Object o = dao.find()if(o == null){throw Exception}return o;但是現(xiàn)在你可以這樣寫Optional o = dao.find()return o.orElseThrow(Exception::new)還可以簡(jiǎn)化成 return dao.find().orElseThrow(Exception::new);所以總的來(lái)說(shuō) , 是為了更好的體現(xiàn)函數(shù)式編程的風(fēng)格各種語(yǔ)言雖然都有自己的特點(diǎn),但是在將來(lái)以后,每個(gè)語(yǔ)言都可能或多或少融入其他語(yǔ)言的優(yōu)點(diǎn),這是一個(gè)必然的趨勢(shì),java也不例外
如何更好地使用Java 8的OptionalJava 8中的Optional是一個(gè)可以包含或不可以包含非空值的容器對(duì)象,在 Stream API中很多地方也都使用到了Optional 。
java中非常討厭的一點(diǎn)就是nullpoint,碰到空指針就會(huì)出錯(cuò)拋Exception , 然后需要逐行檢查是哪個(gè)對(duì)象為空,帶來(lái)大量的不必要精力損耗 , 拋出NPE錯(cuò)誤不是用戶操作的錯(cuò)誤 , 而是開(kāi)發(fā)人員的錯(cuò)誤,應(yīng)該被避免 , 那么只能在每個(gè)方法中加入非空檢查 , 閱讀性和維護(hù)性都比較差 。
如下面這個(gè)代碼的手工非空檢查:
public void addAddressToCustomer(Customer customer, Address newAddress){ if ( customer == null || newAddress == null) return;if ( customer.getAddresses() == null ){customer.setAddresses ( new ArrayList()); } customer.addAddress(newAddress);}
另外還有一些開(kāi)發(fā)人員喜歡通過(guò)非空檢查來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯,空對(duì)象不應(yīng)該用來(lái)決定系統(tǒng)的行為,它們是意外的Exceptional值,應(yīng)當(dāng)被看成是錯(cuò)誤,而不是業(yè)務(wù)邏輯狀態(tài) 。
當(dāng)我們一個(gè)方法返回List集合時(shí),應(yīng)該總是返回一個(gè)空的List,而不是Null,這就允許調(diào)用者能夠遍歷它而不必檢查Null , 否則就拋出NPE 。
但是如果我們根據(jù)標(biāo)識(shí)鍵ID查詢數(shù)據(jù)庫(kù),沒(méi)有查到,需要返回一個(gè)空對(duì)象怎么辦?有人建議拋出Exception , 其實(shí)這不符合函數(shù)方法一進(jìn)一出的原則,變成一個(gè)函數(shù)方法有兩個(gè)返回,一個(gè)是正常返回,一個(gè)出錯(cuò)Exception,函數(shù)式編程范式告誡我們不要輕易拋Exception 。
這時(shí)Java 8的Optional就發(fā)揮作用了,允許我們返回一個(gè)空的對(duì)象 。
Optional有方法 isPresent() 和 get() 是用來(lái)檢查其包含的對(duì)象是否為空或不是,然后返回它,如:
Optional someValue = https://www.zaoxu.com/jjsh/bkdq/someMethod();
if (someValue.isPresent()) { // check
someValue.get().someOtherMethod(); // retrieve and call
}
但是這種用法并不能體現(xiàn)Java 8的全部好處,你可以將Optional看成是需要使用某個(gè)T值的方法之間某種中間人或者協(xié)調(diào)者M(jìn)ediator , 而不只是一個(gè)普通對(duì)象的包裝器 。
如果你有一個(gè)值返回類型T,你有一個(gè)方法需要使用這個(gè)值,那么你可以讓 Optional 處于中間,確保它們之間交互進(jìn)行,而不必要人工干預(yù) 。
這樣,協(xié)調(diào)者Optional能夠照顧T的值提供給你的方法作為輸入?yún)?shù),在這種情況下,如果T是空,可以確保不會(huì)出錯(cuò) , 這樣在T值為空時(shí)也可以讓一切都正常運(yùn)作,你也可以讓Optional執(zhí)行其他動(dòng)作,如執(zhí)行一段代碼塊等等,這樣它就實(shí)際上是語(yǔ)言機(jī)制的很好的補(bǔ)充 。
下面這個(gè)案例涉及到Lambda表達(dá)式 方法引用,是將單詞流中第一個(gè)以"L"開(kāi)始單詞取出,作為返回結(jié)果是一個(gè)Optional 。
jquery.validate里的this.optional(element)這個(gè)函數(shù)什么意思jQuery.validate的optional(element),用于表單控件的值不為空時(shí)才觸發(fā)驗(yàn)證 。
當(dāng)element為空時(shí)this.optional(element)=true,用于在該控件為非必填項(xiàng)目時(shí)可以通過(guò)驗(yàn)證,及條件可以不填但是不能填錯(cuò)格式 。
例如:
jQuery.validator.addMethod("division", function(value, element) { return this.optional(element) || value % 2 == 0 && value % 3 == 0; }, "必須能被2和3整除");
如果值為空時(shí)也要觸發(fā)驗(yàn)證 , 移除optional(element) 。
例如:
$f.addMethod("division", function(value, element) { return value % 2 == 0 && value % 3 == 0; }, "必須能被2和3整除");
VB 中的 PropertyProperty用于標(biāo)識(shí)一個(gè)類成員為屬性而不是方法.屬性可以被獲取,屬性在被獲以的時(shí)候利用get句柄返回其值.屬性可以被賦值,這個(gè)過(guò)程是由set句柄完成的.這兩個(gè)句柄可以不同時(shí)存在.如果只有g(shù)et而沒(méi)有set,那屬性就是只讀的.如果只有set而沒(méi)有g(shù)et,那屬性就是只寫的
VB中Property語(yǔ)句詳細(xì)說(shuō)明1、如果只有g(shù)et,那么這個(gè)屬性就是只讀的(就是說(shuō)只能讀,無(wú)法給它賦值);
如果只有set,那么這個(gè)屬性就是只寫的(只能賦值,無(wú)法讀取,這種情況比較少見(jiàn));
有g(shù)et也有set,則該屬性可讀可寫 。
2、不是的 , get是獲取屬性的值 , 而set是給屬性賦值 。
3、函數(shù)只能讀取值 , 但你沒(méi)法給函數(shù)賦值 。
4、區(qū)別見(jiàn)第3點(diǎn) 。
其實(shí)給類設(shè)置屬性 , 就使類具備了類似控件的一些特性,比如我們可以從Label1.Caption獲取Label1的文字內(nèi)容,也可以通過(guò)給Label1.Caption賦值來(lái)改變Label1的文字內(nèi)容;同樣,如果給類abc設(shè)置一個(gè)可讀可寫的屬性x,那么我們可以通過(guò)abc.x來(lái)獲取這個(gè)屬性的值,也可以通過(guò)給abc.x直接賦值來(lái)改變這個(gè)屬性的值 。
VB中各個(gè)數(shù)據(jù)類型的作用 這些東西是干什么用的?。浚坎惶~具體作用是啥?什么時(shí)間用?。?/h3>optional 是定義函數(shù)或者過(guò)程總的可選參數(shù),property 是自定義窗體或者類的屬性用的 。
VB中碰到一個(gè)Optional和IsMissing事例有問(wèn)題的情況可選參數(shù)未填,數(shù)字型則為0,字符串型則為空字符串""
If IsMissing(TM) Then
這樣才對(duì),意思是如果TM是空字符串,那么.... , 你用了NOT,恰好反過(guò)來(lái)了
VB中const是干什么的,詳細(xì)說(shuō)一下它的用途.謝謝!定義常量的語(yǔ)句 。一來(lái)可以防止寫錯(cuò),二來(lái)修改方便 。
語(yǔ)法
[Public | Private] Const constname [As type] = expression
如
Private Const sMyName As String = "Harry Potter"
Private Const rPi As Single = 3.1415927
Private Const rPi2 As Single = rPi * 2
在缺省情況下常數(shù)是私有的 。過(guò)程中的常數(shù)總是私有的;它們的可見(jiàn)性無(wú)法改變 。在標(biāo)準(zhǔn)模塊中,可以用 Public 關(guān)鍵字來(lái)改變模塊級(jí)常數(shù)可見(jiàn)性的缺省值 。不過(guò),在類模塊中,常數(shù)只能是私有的,而且用 Public 關(guān)鍵字也不能改變其可見(jiàn)性 。
為了在一行中聲明若干個(gè)常數(shù),可以使用逗號(hào)將每個(gè)常數(shù)賦值分開(kāi) 。用這種方法聲明常數(shù)時(shí),如果使用了 Public 或 Private 關(guān)鍵字,則該關(guān)鍵字對(duì)該行中所有常數(shù)都有效 。
在給常量賦值的表達(dá)式中,不能使用變量 , 用戶自定義的函數(shù) , 或 Visual Basic 的內(nèi)部函數(shù)(如 Chr) 。
注意 常數(shù)可以使程序更具可讀性,以及易于修改 。在程序運(yùn)行時(shí),常數(shù)不會(huì)象變量那樣無(wú)意中被改變 。
如果在聲明常數(shù)時(shí)沒(méi)有顯式地使用 As type 子句,則該常數(shù)的數(shù)據(jù)類型是最適合其表達(dá)式的數(shù)據(jù)類型 。
在 Sub、Function 或 Property 過(guò)程中聲明的常數(shù)都是該過(guò)程的局部常數(shù) 。在過(guò)程外聲明的常數(shù) , 在包含該聲明的模塊中被定義 。在可以使用表達(dá)式的地方 , 都可以使用常數(shù) 。
如何更好地使用Java 8的OptionalJava 8中的Optional是一個(gè)可以包含或不可以包含非空值的容器對(duì)象,在 Stream API中很多地方也都使用到了Optional 。
java中非常討厭的一點(diǎn)就是nullpoint,碰到空指針就會(huì)出錯(cuò)拋Exception,然后需要逐行檢查是哪個(gè)對(duì)象為空,帶來(lái)大量的不必要精力損耗,拋出NPE錯(cuò)誤不是用戶操作的錯(cuò)誤,而是開(kāi)發(fā)人員的錯(cuò)誤 , 應(yīng)該被避免,那么只能在每個(gè)方法中加入非空檢查,閱讀性和維護(hù)性都比較差 。
如下面這個(gè)代碼的手工非空檢查:
public void addAddressToCustomer(Customer customer, Address newAddress){ if ( customer == null || newAddress == null) return;if ( customer.getAddresses() == null ){customer.setAddresses ( new ArrayList()); } customer.addAddress(newAddress);}
另外還有一些開(kāi)發(fā)人員喜歡通過(guò)非空檢查來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯,空對(duì)象不應(yīng)該用來(lái)決定系統(tǒng)的行為,它們是意外的Exceptional值 , 應(yīng)當(dāng)被看成是錯(cuò)誤,而不是業(yè)務(wù)邏輯狀態(tài) 。
當(dāng)我們一個(gè)方法返回List集合時(shí),應(yīng)該總是返回一個(gè)空的List,而不是Null , 這就允許調(diào)用者能夠遍歷它而不必檢查Null,否則就拋出NPE 。
但是如果我們根據(jù)標(biāo)識(shí)鍵ID查詢數(shù)據(jù)庫(kù),沒(méi)有查到,需要返回一個(gè)空對(duì)象怎么辦?有人建議拋出Exception,其實(shí)這不符合函數(shù)方法一進(jìn)一出的原則,變成一個(gè)函數(shù)方法有兩個(gè)返回,一個(gè)是正常返回,一個(gè)出錯(cuò)Exception,函數(shù)式編程范式告誡我們不要輕易拋Exception 。
這時(shí)Java 8的Optional就發(fā)揮作用了,允許我們返回一個(gè)空的對(duì)象 。
Optional有方法 isPresent() 和 get() 是用來(lái)檢查其包含的對(duì)象是否為空或不是,然后返回它 , 如:
Optional someValue = https://www.zaoxu.com/jjsh/bkdq/someMethod();
if (someValue.isPresent()) { // check
someValue.get().someOtherMethod(); // retrieve and call
}
但是這種用法并不能體現(xiàn)Java 8的全部好處,你可以將Optional看成是需要使用某個(gè)T值的方法之間某種中間人或者協(xié)調(diào)者M(jìn)ediator,而不只是一個(gè)普通對(duì)象的包裝器 。
如果你有一個(gè)值返回類型T,你有一個(gè)方法需要使用這個(gè)值,那么你可以讓 Optional 處于中間 , 確保它們之間交互進(jìn)行,而不必要人工干預(yù) 。
這樣,協(xié)調(diào)者Optional能夠照顧T的值提供給你的方法作為輸入?yún)?shù),在這種情況下,如果T是空 , 可以確保不會(huì)出錯(cuò) , 這樣在T值為空時(shí)也可以讓一切都正常運(yùn)作,你也可以讓Optional執(zhí)行其他動(dòng)作,如執(zhí)行一段代碼塊等等,這樣它就實(shí)際上是語(yǔ)言機(jī)制的很好的補(bǔ)充 。
下面這個(gè)案例涉及到Lambda表達(dá)式 方法引用,是將單詞流中第一個(gè)以"L"開(kāi)始單詞取出,作為返回結(jié)果是一個(gè)Optional 。
如何更好地使用Java 8的OptionalOptional的出現(xiàn)不僅僅是為了解決一般對(duì)象的null判斷的,應(yīng)該是更好的配合java8的函數(shù)式風(fēng)格編程
可以看到Optional里出現(xiàn)的靜態(tài)方法都是這樣的
比如以前你從數(shù)據(jù)庫(kù)里獲取一個(gè)對(duì)象,然后對(duì)他進(jìn)行操作,可能是這樣的代碼
1
2
3
4
5
Object o = dao.find()
if(o != null)
{
doSomething(o)
}
但是用函數(shù)式編程來(lái)寫就該是這樣
1
2
Optional o = dao.find()
o.ifPresent(item->doSometing(o));
再舉個(gè)例子 , 若你從數(shù)據(jù)庫(kù)查出來(lái)的對(duì)象要是空的話需要報(bào)錯(cuò),以前會(huì)這樣寫
1
2
3
4
5
6
Object o = dao.find()
if(o == null)
{
throw Exception
}
return o;
但是現(xiàn)在你可以這樣寫
1
2
Optional o = dao.find()
return o.orElseThrow(Exception::new)
還可以簡(jiǎn)化成
1
return dao.find().orElseThrow(Exception::new);
所以總的來(lái)說(shuō) , 是為了更好的體現(xiàn)函數(shù)式編程的風(fēng)格
各種語(yǔ)言雖然都有自己的特點(diǎn),但是在將來(lái)以后,每個(gè)語(yǔ)言都可能或多或少融入其他語(yǔ)言的優(yōu)點(diǎn),這是一個(gè)必然的趨勢(shì),java也不例外
如何更好地使用Java 8的Optional如何更好地使用Java8的Optional
Optional的出現(xiàn)不僅僅是為了解決一般對(duì)象的null判斷的 , 應(yīng)該是更好的配合java8的函數(shù)式風(fēng)格編程 可以看到Optional里出現(xiàn)的靜態(tài)方法都是這樣的 比如以前你從數(shù)據(jù)庫(kù)里獲取一個(gè)對(duì)象,然后對(duì)他進(jìn)行操作 , 可能是這樣的代碼 Object o = dao.find()if(o
如何更好地使用Java8的Optional
Java 8中的Optional是一個(gè)可以包含或不可以包含非空值的容器對(duì)象,在 Stream API中很多地方也都使用到了Optional 。java中非常討厭的一點(diǎn)就是nullpoint , 碰到空指針就會(huì)出錯(cuò)拋Exception,然后需要逐行檢查是哪個(gè)對(duì)象為空,帶來(lái)大量的不必要精力
如何更好地使用Java 8的Optionalvar xs,ys,xe,ye;
$("body").addEvent('touchstart',function(e) {
var touch=e.touches[0]
xs=touch.pageX
ys=touch.pageY
alert(ys)
});
$("body").addEvent('touchmove',function(e){
var touche=e.changedTouches[0]
xe=touche.pageX;
ye=touche.pageY
alert(xe+"\n"+ye)
getOrientation()
});
//addEvent是我在項(xiàng)目中定義的方法,你可以使用 addEventListener()
如何將java8改為java7右鍵項(xiàng)目-properties-java build path-libraries-add library-選擇jre system library
然后選擇你的java7路徑
Swift 的 Optional 機(jī)制有什么用因?yàn)镾wift是強(qiáng)類型語(yǔ)言
為什么不能讓nil跟所有類型兼容?
因?yàn)镾wift是強(qiáng)類型語(yǔ)言,nil類型無(wú)法判斷,和其它類型不一樣,無(wú)法兼容 。
為什么不能讓nil等同與false?
因?yàn)镾wift是強(qiáng)類型語(yǔ)言 , nil類型無(wú)法判斷,false類型是Bool,類型不一樣,不能等同 。
引入optional type帶來(lái)什么好處?
因?yàn)镾wift是強(qiáng)類型語(yǔ)言,為了解決nil類型不詳?shù)膯?wèn)題 , 不得不引入Optional封裝nil,nil有了類型后,才能融入強(qiáng)類型語(yǔ)言范疇 。實(shí)在是沒(méi)有其它更好的方式了 。參考其它編程語(yǔ)言:Option type
個(gè)人覺(jué)得并不是為了帶來(lái)好處才引入Optional,甚至對(duì)習(xí)慣動(dòng)態(tài)語(yǔ)言的來(lái)說(shuō)有些麻煩,但因?yàn)橛辛薕ptional,很多強(qiáng)類型的問(wèn)題(比如類型安全)解決了,“無(wú)”和“空”劃分得更清晰 , bug會(huì)更少 。
另外,從函數(shù)語(yǔ)言角度來(lái)看 , Optional是容器 , 是Functor和Monad實(shí)例,可以map, flatMap 。
例子1:
//test.playground
var str: Int? = 0
str.successor() //error
str.map { $0.successor() } //ok
str+1 //error
str.flatMap { $0+1 } //ok
例子2:
//偽代碼
//沒(méi)有Optional前
if a != nil {
let a1 = f1(a)
if a1 != nil {
let a2 = f2(a1)
if a2 != nil {
f3(a2)
}
}
}
//有了Optional后
f1: Optional -> Optional
f2: Optional -> Optional
f3: Optional -> Optional
a.flatMap { f1($0) } .flatMap { f2($0) } .flatMap { f3($0) }
//或者
a.flatMap { f3( f2( f1( $0 ) ) ) }
無(wú)就是無(wú) , 空就是空,有就是有,現(xiàn)在我們給它統(tǒng)一取個(gè)名字,叫Optional 。
同時(shí)結(jié)合map函數(shù)映射實(shí)現(xiàn)自動(dòng)unbox, box和bind,摒棄掉if else以及?條件運(yùn)算符等具象的結(jié)構(gòu)思維 , 可以實(shí)現(xiàn)更高層的抽象,用純純的函數(shù)式思維寫出更健壯更易維護(hù)的代碼 。
Swift 的 Optional 機(jī)制有什么用最重要的作用就是避免空值帶來(lái)的風(fēng)險(xiǎn),特別是嵌套結(jié)構(gòu)的訪問(wèn)實(shí)現(xiàn) 。考察以下代碼:let x:[String: [String:String]] = ["files":["path1":"value1", "path2":"value2"]]let path1 = x["files"]?["path1"] ?? ""print(path1) //輸出為 value1let path2 = x["files"]?["path2"]print(path2) //輸出為 Optional("value2")let path3 = x["files"]?["path3"]print(path3) //輸出為nillet path4 = x["paths"]?["file"]print(path4) //輸出為nil由于有了Optional機(jī)制,連續(xù)的數(shù)據(jù)訪問(wèn)中即時(shí)中間環(huán)節(jié)有空值也能保證不會(huì)出現(xiàn)異常訪問(wèn) 。
Swift 的 Optional 機(jī)制有什么用因?yàn)镾wift是強(qiáng)類型語(yǔ)言 為什么不能讓nil跟所有類型兼容? 因?yàn)镾wift是強(qiáng)類型語(yǔ)言,nil類型無(wú)法判斷,和其它類型不一樣,無(wú)法兼容 。為什么不能讓nil等同與false? 因?yàn)镾wift是強(qiáng)類型語(yǔ)言,nil類型無(wú)法判斷,false類型是Bool,類型不一樣,不能等
swift的optional是不是最蛋疼的設(shè)計(jì)最重要的作用就是避免空值帶來(lái)的風(fēng)險(xiǎn),特別是嵌套結(jié)構(gòu)的訪問(wèn)實(shí)現(xiàn) 。考察以下代碼:let x:[String: [String:String]] = ["files":["path1":"value1", "path2":"value2"]]
let path1 = x["files"]?["path1"] ?? ""
print(path1) //輸出為 value1
let path2 = x["files"]?["path2"]
print(path2) //輸出為 Optional("value2")
let path3 = x["files"]?["path3"]
print(path3) //輸出為nil
let path4 = x["paths"]?["file"]
print(path4) //輸出為nil由于有了Optional機(jī)制,連續(xù)的數(shù)據(jù)訪問(wèn)中即時(shí)中間環(huán)節(jié)有空值也能保證不會(huì)出現(xiàn)異常訪問(wèn) 。
Swift為什么定義Optional類型當(dāng)蘋果引進(jìn)Swift的時(shí)候,他們有三個(gè)主要目標(biāo):安全,時(shí)尚和強(qiáng)大 。其中包含這些特色的就是Swift的Optional.大部分編程語(yǔ)言特色的存在是為了能解決問(wèn)題,而optional是為了解決問(wèn)題而自然而然被創(chuàng)造 。好了 , 開(kāi)始舉例 。
假設(shè)你有一個(gè)張 沒(méi)交房租住客名字的黑名單,黑名單里有公寓的號(hào)碼.我們需要檢查一個(gè)公寓號(hào)碼是否在黑名單里面:
let 黑名單 = ["101","202","303","404"]
寫一個(gè)非常簡(jiǎn)單的函數(shù)來(lái)檢查一個(gè)公寓號(hào)碼是否在一個(gè)名單里面:
func findApt (欠租人 : String, 黑名單: String[]) -> String {
for tempAptNumber in 黑名單 {
if ( tempAptNumber == 欠租人) {
return 欠租人
}
}
}
上面的函數(shù)findApt有兩個(gè)參數(shù):A String 欠租人 和 an array of strings 黑名單.
第
一個(gè)參數(shù)是我們?cè)趯ひ挼墓⑻?hào)碼,第二參數(shù)是一個(gè)公寓號(hào)碼的數(shù)組(即黑名單).這個(gè)函數(shù)一個(gè)一個(gè)搬出數(shù)組的公寓號(hào)碼存儲(chǔ)在臨時(shí)變量
tempAptNumber.然后我們比較公寓號(hào)碼,如果確實(shí)有匹配,返回公寓號(hào)碼.然而 , 上述的函數(shù)并不完整 , 因?yàn)槲覀冎辉谡业狡ヅ涞墓⑻?hào)碼的時(shí)候才
返回一個(gè)值.假如遍歷這個(gè)數(shù)組名單結(jié)束了 , 還是沒(méi)有找到匹配的公寓號(hào)碼,這是函數(shù)要返回什么呢?
理想化地說(shuō),我們應(yīng)該返回一個(gè)nil,但是我們已經(jīng)設(shè)置了string作為我們的返回類型,一個(gè)解決問(wèn)題的方法是返回一個(gè)empty string:
func findApt (欠租人 : String, 黑名單 : String[]) -> String {
for tempAptNumber in 黑名單 {
if ( tempAptNumber == 欠租人) {
return 欠租人
}
}
return ""
}
上述其實(shí)是一個(gè)失敗的函數(shù).因?yàn)槲覀儾荒苁褂孟率龅膇f語(yǔ)句:
if findApt("505", 黑名單) {
發(fā)送警告()
}
上述的if語(yǔ)句塊永遠(yuǎn)都不能執(zhí)行sendNotice(),因?yàn)閒indApt永遠(yuǎn)是return aptNumber orreturn "",科普一下""不等同于false . if必須跟bool表達(dá)式.所以 , 上述函數(shù)可以改成:
if findApt("505", 黑名單) != "" {
發(fā)送警告()
}
但是這和我們的本意相違背了,代碼不友好 。真是讓人頭疼,所過(guò)我們把return "" 改成 return nil ,我們編譯不會(huì)通過(guò)因?yàn)榉祷仡愋褪莝tring.這種情況就是optionals出場(chǎng)的時(shí)候了
An optional一個(gè)可變值 有兩種狀態(tài),一個(gè)值或者nil(空).聲明一個(gè)變量的時(shí)候,后綴加?即是可變值,例如var optional?. 我們把optional應(yīng)用到我們的函數(shù)里面:
func findApt (aptNumber : String, 黑名單: String[]) -> String? {
for tempAptNumber in 黑名單 {
if ( tempAptNumber == 欠租人) {
return 欠租人
}
}
return nil
}
返回類型是一個(gè)String?所以我們?cè)诤瘮?shù)中可以返回nil. 現(xiàn)在我們的函數(shù)就擁有高端配置,輕松使用if語(yǔ)句:
let 欠租人 = findApt("404",黑名單)
if 欠租人{(lán)
發(fā)出警告();
}
現(xiàn)在我是向全公寓的住客發(fā)出警告(),假如我們需要向一個(gè)特定欠租的住客發(fā)出警告(apt:Int).這種情況下,你可能會(huì)這種寫我們的函數(shù):
let 欠租人 = findApt("404",黑名單)
if 欠租人{(lán)
發(fā)出警告(欠租人);
}
這樣子,編譯器會(huì)報(bào)錯(cuò).因?yàn)榍纷馊诉@個(gè)常量是一個(gè)optional可變值,因?yàn)樗俏覀兒瘮?shù)的返回類型.上述的語(yǔ)句等同下面的語(yǔ)句:
let 欠租人: String? = findApt("404",aptNumbers)
if 欠租人{(lán)
發(fā)出警告(欠租人)
}
如果我們將發(fā)出警告(欠租人)改成發(fā)出警告(欠租人!),即:
let 欠租人: String? = findApt("404",aptNumbers)
if 欠租人{(lán)
發(fā)出警告(欠租人!)
}
欠租人!實(shí)際上等同一個(gè)String類型,而欠租人是String?類型 。
加了?號(hào)實(shí)際上是把欠租人這個(gè)常量包裹(wrap)起來(lái) , 把nil和它包在一起;!把欠租人這個(gè)常量解開(kāi)(unwrap),讓它變回原來(lái)的類型 。所以在
發(fā)出警告(欠租人!)不會(huì)出現(xiàn) 發(fā)出警告(nil)的情況.
欠租人是一個(gè)String類型,我們把它轉(zhuǎn)換成Int:
let 欠租人 = findApt("404",aptNumbers)
if 欠租人{(lán)
發(fā)出警告(欠租人!.toInt())
}
上述if語(yǔ)句其實(shí)不能執(zhí)行的,因?yàn)閕f只能判斷true或false,而不能判斷String或nil.我們應(yīng)該改成:
if let 欠租人 = findApt("404",aptNumbers){
發(fā)出警告(欠租人.toInt())
}
可能你發(fā)現(xiàn)欠租人!.toInt()的感嘆號(hào)去掉了,這...?
因?yàn)楫?dāng)使用if let語(yǔ)句時(shí),常量欠租人會(huì)被賦予真正的值,即欠租人=非空的String或空String,二選一,不是一個(gè)可變.
還有一個(gè)問(wèn)題沒(méi)有解決,toInt()返回Int?類型 。所以,我們可以這樣:
if let 欠租人 = findApt("404",aptNumbers){
發(fā)出警告(欠租人.toInt()!)
}
但是這樣可能會(huì)出現(xiàn)發(fā)出警告(nil)的情況出現(xiàn) , 為了應(yīng)對(duì)這種情況 , 我們可以加一個(gè)if let語(yǔ)句判斷,當(dāng) 欠租人.toInt()為nil不發(fā)出警告()
if let 欠租人 = findApt("404",aptNumbers){
if let 欠租人Int = 欠租人.toInt() {
發(fā)出警告(欠租人Int)
}
Swift還提供一種optional chaining可變連接,精簡(jiǎn)上述的語(yǔ)句如下:
if let 欠租人Int = findApt("404",aptNumbers)?.toInt()
{
發(fā)出警告(欠租人Int)
}
結(jié)論: Optionals可變參數(shù)可以幫助我們節(jié)省大量時(shí)間和讓我們的代碼更具可讀性和效率.我們可能需要一段時(shí)間來(lái)習(xí)慣它,但是一旦你掌握了它你會(huì)討厭看到寫代碼時(shí)要去不斷精密地檢查nil或者sentinel values
Description-optional是什么意思Description-optional
描述可選
optional[英][ˈɒpʃənl][美][ˈɑ:pʃənl]
adj.可選擇的; 隨意的 , 任意的; 非強(qiáng)制的; 選修科目;
例句:
1.
Return to the path including the optional mainframe and mail senders list.
返回路徑中包括了可選的主機(jī)和發(fā)送者郵箱列表 。
optional是什么意思o(jì)ptionaladj.可選擇的; 隨意的 , 任意的; 非強(qiáng)制的; 選修科目; [英][ˈɒpʃənl][美][ˈɑ:pʃənl]
optional是什么意思?adj.可選擇的,隨意的,任意的,非強(qiáng)制的,選修科目
optional是什么意思o(jì)ptional
可選
雙語(yǔ)對(duì)照
詞典結(jié)果:
optional
[英][ˈɒpʃənl][美][ˈɑpʃənəl]
adj.可選擇的; 隨意的,任意的; 非強(qiáng)制的; 選修科目;
以上結(jié)果來(lái)自金山詞霸
展開(kāi)更多詞典
例句:
1.
In ejb 3.1 even the local interfaces will be optional.
在ejb3.1中甚至連local interfaces也是可選的 。
amd optional是什么意思amd optional AMD可選AMD公司專門為計(jì)算機(jī)、通信和消費(fèi)電子行業(yè)設(shè)計(jì)和制造各種創(chuàng)新的微處理器(CPU、GPU、APU、主板芯片組、電視卡芯片等)、閃存和低功率處理器解決方案,AMD致力為技術(shù)用戶——從企業(yè)、政府機(jī)構(gòu)到個(gè)人消費(fèi)者——提供基于標(biāo)準(zhǔn)的、以客戶為中心的解決方案 。
sql查詢語(yǔ)句的where條件里可以使用參數(shù)嗎?從提升性能和安全的角度(防注入)來(lái)講,建議使用參數(shù)化方式來(lái)處理 。
示例如下:
//實(shí)例化Connection對(duì)象
SqlConnection connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");
//實(shí)例化Command對(duì)象
SqlCommand command = new SqlCommand("select * from UserInfo where sex=@sex and age>@age", connection);
//第一種添加查詢參數(shù)的例子
command.Parameters.AddWithValue("@sex", true);
//第二種添加查詢參數(shù)的例子
SqlParameter parameter = new SqlParameter("@age", SqlDbType.Int);//注意UserInfo表里age字段是int類型的
parameter.Value = https://www.zaoxu.com/jjsh/bkdq/30;
command.Parameters.Add(parameter);//添加參數(shù)
SqlDataReader reader = command.ExecuteReader();
想在sql語(yǔ)句中添加一個(gè)where條件,這個(gè)where條件是如果傳過(guò)來(lái)的參數(shù)有就添加,沒(méi)傳參數(shù)過(guò)來(lái)就默認(rèn)不添加select * from table_name where 1 = 1 [and id = 'xxx']
oracle的sql語(yǔ)句where語(yǔ)句中nvl函數(shù)的第一個(gè)參數(shù)可以使用宿主變量不,如where 字段名1=nvl(:va,字段名1)看你的問(wèn)題,字段1=nvl(:va,字段1) , 是沒(méi)有問(wèn)題的
select R.REGION_NAME REGION_NAME, R.REGION_ID HID_ID, SUM(G.BADBILL_FEE) sum_fee from SYS_REGION R, GCI_BADBILL_SUM G where G.city_id = R.REGION_ID and R.SUP_REGION_ID = ? and G.badfee_type_id = nvl(:badfeeType,G.badfee_type_id) and G.badfee_level_id = nvl(:badfeeLevel,G.badfee_level_id) and G.grp_degree_id = nvl(:grpDegree,G.grp_degree_id) 但我在java程序里將宿主變量值傳入,出現(xiàn)索引丟失參數(shù)錯(cuò)誤
檢查一下 ,
1. 檢查表sys_region、gci_badbill_sum的索引狀態(tài)
2. 傳入的如果是字符串變量,是否有引號(hào)''
3. 如果有必要,貼一下具體的錯(cuò)誤,是ORA的還是java的,有的話都貼一下
里面的SQL語(yǔ)句 , 怎樣使用傳入的參數(shù)作為條件表達(dá)式SQL Server數(shù)據(jù)中運(yùn)算符與表達(dá)式
請(qǐng)問(wèn)在java中怎么向sql語(yǔ)句傳參數(shù)啊你連數(shù)據(jù)庫(kù)是通過(guò)JDBC連接的嗎,有個(gè)參數(shù)可以傳遞過(guò)去的
PreparedStatement ps =null;ResultSet rs =null;try{
ps = conn.prepareStatement("SELECT * FROM table
WHERE name = ?");
ps.setString(1, "hello");
這個(gè)“?”相當(dāng)于占位符,setString(1, "hello");就是要傳遞的參數(shù) 。
optional 這個(gè)英語(yǔ)單詞的發(fā)音怎么讀optional [ˈɑpʃənl] ʃənl 這個(gè)這個(gè)音節(jié)讀凹婆深哦 。
這兩個(gè)英語(yǔ)單詞 optional / desirable 怎么讀Optional 噢(重音)撲神no (無(wú)對(duì)應(yīng)漢字)desirable 抵在(長(zhǎng)音,重音)惹煲
科目的英語(yǔ)單詞怎么讀

文章插圖
subject讀音:英 [ˈsʌbdʒɪkt];美 [ˈsʌbdʒekt] subjectn.主題 , 話題;學(xué)科,科目;[哲]主觀adj.須服從…的;(在君主等)統(tǒng)治下的v.提供,提出;使…隸屬1、Surprisingly, mathematics was voted their favourite subject. 令人驚訝的是,數(shù)學(xué)課被選為他們最喜歡的科目 。2、It's your best subject and you should be able to pass the exam standing on your head. 那是你學(xué)得最好的科目,你應(yīng)該能夠毫不費(fèi)力地通過(guò)考試 。短語(yǔ):1、Fundamental subject基本科目2、optional subjects 選修科目擴(kuò)展資料近義詞的英文:course、curriculum一、course英 [kɔ:s]美 [kɔ:rs]n.課程;航線;行動(dòng)方向;一道菜vt.快速地流動(dòng);奔流;跑過(guò);追逐vi.沿…(方向)前進(jìn);指引航線;快跑;迅速移動(dòng)The course also features creative writing exercises and listeningcomprehension. 這門課程也包括寫作練習(xí)和聽(tīng)力理解二、curriculum英 [kəˈrɪkjələm]美 [kəˈrɪkjələm]n.全部課程,課程We have to build computers into the school curriculum 我們必須把計(jì)算機(jī)納入到學(xué)校的課程中 。
英語(yǔ)這里optional objectives什么意思?額外目標(biāo);意思就是你已經(jīng)通過(guò)本任務(wù)主線要求了 , 但是你在本任務(wù)中還可以閑著沒(méi)事可以去完成的目標(biāo) 。
分別是“在上船時(shí)不要讓生命值降到50%以下”和“三分鐘內(nèi)讓船沉沒(méi)” 。
求采納!
primary這個(gè)英語(yǔ)單詞怎么讀

文章插圖
primary讀法:英 ['praɪm(ə)rɪ]美 ['praɪmɛri] 釋義:1、adj. 主要的;初級(jí)的;基本的2、n. 原色;最主要者primary education初等教育 primary source一次文獻(xiàn) primary production初級(jí)生產(chǎn)例句:1、In this process, some of the variables are primary elements that are necessary for input, while others are optional.在這一過(guò)程中,一些變量是基本的元素,是必須輸入的,而其它一些卻是可選的 。2、Therefore, the critical evaluation need is one of measurement, and this should be the primary goal of the tester in this phase.因此,關(guān)鍵的評(píng)估需求是其中一個(gè)度量,并且這應(yīng)該是此階段測(cè)試人員主要的目標(biāo) 。擴(kuò)展資料primary的近義詞:elementary 讀法:英 [elɪ'ment(ə)rɪ]美 [,ɛlɪ'mɛntri] 釋義:adj. 基本的;初級(jí)的;[化學(xué)] 元素的短語(yǔ):1、Elementary algebra初等代數(shù)2、elementary reaction基元反應(yīng) 3、Elementary student小學(xué)生 4、elementary statistics基本統(tǒng)計(jì) 5、elementary file基本文件
OPTIONAL是什么意思?n.選修科目 adj.可選擇的,隨意的
optional是什么意思及用法optional:[ ɔpʃənəl ]
a. 可以任選的,非強(qiáng)制的
[ 副詞optionally ]
例句與用法
1.The insurance cover is optional.
保險(xiǎn)范圍可以隨意選擇 。
2.A4-speed automatic transmission is optional.
四段自動(dòng)變速器是可自由選擇的 。
3.Permitting discretion; optional.
允許自行處理的;隨意的
4.It is optional with you.
那是你的自由 。
optional是什么意思【optional】optional英-['ɒpʃ(ə)n(ə)l]美-['ɑpʃənl]釋義n. 選修科目adj. 可選擇的,隨意的
- visualstudio
- visualboyadvance
- vs2005
- qbasic
- visual c++可以卸載嗎
- microsoft visual可以刪除嗎
- microsoft visual c++2005可以卸載嗎
- visual怎么讀 visual的意思
- microsoftvisualc++是什么軟件
- 3M機(jī)油價(jià)格 visual studio code怎么創(chuàng)建php
