首頁 後端開發 php教程 盤點程式語言中的十大奇怪特徵

盤點程式語言中的十大奇怪特徵

Nov 26, 2016 am 09:43 AM

 每種程式語言都有它獨自的“怪癖”,例如奇怪的語法、與眾不同的功能或是不符標準的實作方法。程式設計師也都有自己的習慣,這會讓許多程式設計師,甚至是一些經驗豐富的開發者,在面對一門新的語言時都會感到抓狂。這些語言的特徵有時會成為程式設計師的絆腳石,也有的時候程式設計師會慢慢理解這些特點,逐漸適應並喜歡上它們。雖然所有語言的特徵不計其數,但程式設計師總是在討論的就沒有那麼多了,我們在這篇文章中列出了最讓程式設計師瘋狂的程式語言中的10大奇怪特徵。

1. JavaScript中'+'是一個連接運算符

奇怪特徵:在JavaScript中,'+'是被重載的運算符,既是數字間的加號(+),又是字符串間的連接符。如果在一個'+'運算中,其中一個運算元是字串,JavaScript就會把另一個運算元轉換為字串,此時'+'是連結運算符,所以'1'+ 1的結果就是'11'。 
 

原因分析:這個問題的根本原因還是在於JavaScript是弱型別語言。但像Python,雖然‘+’也是字串間的連接運算符,但Python是強型別語言,當程式設計師想要把字串和整數加在一起時,程式是會報錯的。
 

2. Perl中一個類別必須要回傳TRUE

奇怪特徵:Perl語言中的類別很多時候都是以return 1語句結束的,因為如果類別中最後的語句不回傳一個TURE值,就會產生錯誤。
原因分析:Perl中的類別可以包含一些初始化的工作和子程序。當檔案載入完畢,Perl透過尋找一個TRUE的回傳值,開始檢查程式是否成功執行。即使類別中沒有初始化程式碼部分,Perl也預期類別的最後會回傳TRUE值,否則拋出異常。

3. C和C++中的三字符組

奇怪特徵:C和C++支援9個三字符組,它會在後續的處理前把三字符組轉換為一個單一的字符,比如'??! '會被轉為/,這樣的結果會讓原始碼更難讀,有時還會出現意外的問題。
原因分析:三字符組起初是用來幫助早期的C程式設計師打出一些在鍵盤中沒有的字符,例如花括號。
 

4. PHP中大小寫不敏感

奇怪特徵:在許多程式語言中的識別碼都是大小寫敏感的,但在PHP的函數和類別名稱中,大小寫是不敏感的。這還好,但最讓程式設計師困惑的是PHP的變數名稱、常數和類別屬性卻是大小寫敏感的。
原因分析:最有可能的是,PHP是由CGI腳本逐步發展出成熟的程式語言。
 

5. Ruby中的0表示TURE

奇怪特徵:在Ruby中,0值代表TRUE,這和C、Python等其他語言是完全相反的,在這些語言中0代表的是FALSE,這也讓許多新學習Ruby的開發者大為困惑。
原因分析:Ruby當中只有bool值FALSE和nil等於FALSE,其它所有的都是TRUE,0就和其他的數字是一樣的。

6. 在Python中用空格來分「塊」

奇怪特徵:既不使用標點符號,也不使用關鍵字,Python使用獨特的縮排等級來判斷某一行程式碼是屬於哪一部分的。錯誤數量的空格或混用了空格和Tab鍵,都會產生錯誤。
原因分析:這可能和Python為了產生可讀性更好的程式碼,減少打字有關,而且現在很多的程式碼編輯器都是支援自動縮排的。
 

7. C語言中數組下標就像是在做指針運算

奇怪特徵:C語言中的指針,除了把i當做數組a中的下標,表示為a[i],C還允許把同樣的元素表示為i[a]。
原因分析:C語言中,數組就像是記憶體中的指針,所以有a[i] = *(a+i) = *(i+a) = i[a]。
 

8. Perl中預先定義的變數

奇怪特徵:Perl有著一長串的特殊變量,它們都有著容易混淆的名字。對於那些非Perl專家,他們都需要常常查詢Perl文件才能明白這些程式碼的意思。
原因分析:這些變數通常都是在提供一些程式執行方面的訊息,例如進程ID($$),錯誤訊息($@),正規表示式的匹配($^R)。
 

9. JavaScript自動插入分號

奇怪特徵:JavaScript中把使用分號作為一個語句的結束只是當做一種選擇,是因為它會自動插入分號,例如在換行符後。但這通常會在沒有異常拋出時產生錯誤。


原因分析:插入分號是為了方便,讓程式設計師,尤其是新手程式設計師覺得JavaScript的語法非常容易。
 

10. Java中有Integer參與的型別轉換

奇怪特徵:Java會自動將原始型別轉換為對象,例如將int型別轉為Integer對象,預設Integer對象的值是從-128到127。這在使用‘==’比較兩個有相同值的Integer時會產生問題(只有在-128-127時返回TRUE,其餘返回FALSE)。
原因分析:這樣轉換會減少程式設計師的程式碼量,提高效能。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
華為倉頡程式語言官方入門教學發布,一文看懂如何取得通用版本 SDK 華為倉頡程式語言官方入門教學發布,一文看懂如何取得通用版本 SDK Jun 25, 2024 am 08:05 AM

本站6月24日消息,在6月21日HDC2024華為開發者大會主題演講上,華為終端BG軟體部總裁龔體正式官宣了華為自研倉頡程式語言。語言歷經5年研發沉澱,現已開啟開發者預覽。華為開發者官網現已推出倉頡編程語言官方入門教程視頻,方便開發者初步上手理解。教程將帶使用者體驗倉頡、學習倉頡、應用倉頡,包括用倉頡語言估算圓周率、計算2024年各月的干支紀法、看到二叉樹在倉頡語言中的N種表達方式,以及用枚舉類型實現代數計算、用介面和擴充實現訊號系統模擬,還有用倉頡宏擴展出新語法等等。本站附教學存取位址:ht

歷經 5 年研發沉澱,華為下一代程式語言「倉頡」正式開啟預覽 歷經 5 年研發沉澱,華為下一代程式語言「倉頡」正式開啟預覽 Jun 22, 2024 am 09:54 AM

本站6月21日消息,在今日下午的HDC2024華為開發者大會上,華為終端BG軟體部總裁龔體正式官宣了華為自研倉頡編程語言,並發布了HarmonyOSNEXT倉頡語言開發者預覽版。這是華為首次公開發布倉頡程式語言。龔體表示:「2019年,倉頡程式語言計畫在華為誕生,歷經5年研發沉澱,大量研發投入,今日終於和全球開發者見面。倉頡程式語言透過現代語言特性的整合、全方位的編譯優化和運行時實現、以及開箱即用的IDE工具鏈支持,為開發者打造友好開發體驗和卓越程序性能。

華為開啟鴻蒙 HarmonyOS NEXT 倉頡程式語言開發者預覽版 Beta 招募 華為開啟鴻蒙 HarmonyOS NEXT 倉頡程式語言開發者預覽版 Beta 招募 Jun 22, 2024 am 04:07 AM

本站6月21日消息,華為自研倉頡程式語言今日正式亮相,官方宣布開啟HarmonyOSNEXT倉頡語言開發者預覽版Beta招募。本次升級為開發者預覽版嚐鮮升級,提供倉頡語言SDK、開發者指南以及相關的DevEcoStudio插件,供開發者使用倉頡語言開發、調試及運行HarmonyOSNext應用。報名週期:2024年6月21日-2024年10月21日申請要求:本次HarmonyOSNEXT倉頡語言開發者預覽版Beta招募活動,僅開放給以下開發者報名:1)已在華為開發者聯盟完成實名認證;2)完成H

天津大學、北航深度參與華為'倉頡”,推出首個基於國產程式語言的 AI 智能體程式框架'蒼穹” 天津大學、北航深度參與華為'倉頡”,推出首個基於國產程式語言的 AI 智能體程式框架'蒼穹” Jun 23, 2024 am 08:37 AM

本站6月22日消息,華為昨日向全球開發者介紹華為自研程式語言-倉頡(Cangjie)。這是倉頡程式語言的首次公開亮相。本站查詢獲悉,天津大學、北京航空航天大學深度參與了華為「倉頡」的研發。天津大學:倉頡程式語言編譯器天津大學智能與計算學部軟體工程團隊攜手華為倉頡團隊,深度參與倉頡程式語言編譯器的品質保障研究。據介紹,倉頡編譯器是與倉頡程式語言共生的基礎軟體。在倉頡程式語言的籌備階段,與之相匹配的高品質編譯器成為核心目標之一。隨著倉頡程式語言的演化,倉頡編譯器也不斷升級、改進。五年來,天津大

華為自研倉頡程式語言官網及開發文件上線,首度融入鴻蒙生態 華為自研倉頡程式語言官網及開發文件上線,首度融入鴻蒙生態 Jun 22, 2024 am 03:10 AM

本站6月21日消息,在HDC2024華為開發者大會前,華為自研倉頡程式語言正式亮相,倉頡官網現已上線。官網介紹顯示,倉頡程式語言是一款面向全場景智慧的新一代程式語言,主打「原生智慧化、天生全場景、高效能,強大安全」。融入鴻蒙生態,為開發者提供良好的程式設計體驗。本站附官網介紹如下:原生智慧化內嵌AgentDSL的程式框架,自然語言&程式語言有機融合;多Agent協同,簡化符號表達,模式自由組合,支援各類智慧應用開發。天生全場景輕量化可縮放運行時,模組化分層設計,記憶體再小也能裝得下;全場景領域擴

Microsoft Edge瀏覽器不顯示圖片怎麼辦-Microsoft Edge瀏覽器不顯示圖片的解決方法 Microsoft Edge瀏覽器不顯示圖片怎麼辦-Microsoft Edge瀏覽器不顯示圖片的解決方法 Mar 04, 2024 pm 07:43 PM

近期有很多小夥伴諮詢小編MicrosoftEdge瀏覽器不顯示圖片怎麼辦,接下來就讓我們一起學習一下MicrosoftEdge瀏覽器不顯示圖片的解決方法吧,希望可以幫助到大家。 1.先點選左下角開始,右鍵點選“Microsoftedge瀏覽器”,如下圖所示。 2、然後選擇“更多”,點擊“應用設定”,如下圖所示。 3、接著下滑找到“圖片”,如下圖。 4.最後將圖片下方的開關打開即可,如下圖所示。上面就是小編為大家帶來的MicrosoftEdge瀏覽器不顯示圖片怎麼辦的全部內容,希望對大家能夠有所幫助喔。

C++技術與其他現代程式語言的優缺點對比 C++技術與其他現代程式語言的優缺點對比 Jun 01, 2024 pm 10:15 PM

C++與其他現代程式語言的優缺點比較為:C++優勢:高效能、低階控制、豐富的函式庫生態系統。 C++劣勢:學習曲線陡峭、手動記憶體管理、可移植性受限。 Python優勢:學習曲線平滑、廣泛的函式庫支援、解譯型語言。 Java優勢:平台無關、自動記憶體管理、廣泛應用。 JavaScript優勢:前端開發必備、輕量、動態型別。

華為純血鴻蒙生態最後一環!自研倉頡程式語言將首次亮相 華為純血鴻蒙生態最後一環!自研倉頡程式語言將首次亮相 Jun 21, 2024 pm 03:23 PM

6月21日消息,今天下午,華為開發者大會2024將正式揭幕。 「純血鴻蒙」HarmonyOSNEXT自然是重中之重,按照餘承東之前透露的規劃,今天下午就可能正式宣佈公測,普通消費者也能嚐鮮「純血鴻蒙」了。據爆料,首批支援的手機為Mate60系列和Pura70系列。值得注意的是,作為“純血鴻蒙”,HarmonyOSNEXT去掉了傳統的Linux核心和AOSP安卓開源程式碼,全端自研。據新浪科技最新報道稱,華為還將補齊鴻蒙生態的最後一環,在大

See all articles