主頁 > 後端開發 > Python 最近兩條好訊息:①TIOBE排名超過C和Java②新版本發布3.10.0,還有今天剛發布的《What’s New in Python(2021.10.15)》

Python 最近兩條好訊息:①TIOBE排名超過C和Java②新版本發布3.10.0,還有今天剛發布的《What’s New in Python(2021.10.15)》

2021-10-16 09:02:58 後端開發

來自TIOBE的最新10月份統計資料顯示,Python首次超越Java、JavaScript、C語言等,成為最受歡迎的編程語言,TIOBE過去20年一直在追蹤編程語言的受歡迎程度,其資料來自于對25個搜索引擎和網站的檢索結果,包括但不限于谷歌、必應、維基百科、雅虎、油管等,Python最近的份額占比是11.27%,C語言是11.16%,Java以10.4排第三;TOP10中還有C++、C#、Visual Basic、JavaScript、SQL、PHP和Assembly,

2021年10月04日,Python官方發布了最新穩定版本3.10.0 ,它包含許多新的特性和優化,從今天發布的中文版《What’s New in Python(2021.10.15)》摘抄了部分重點如下:

1 摘要 -- 發布重點

新的語法特性:

? PEP 634, 結構化模式匹配: 規范說明
? PEP 635, 結構化模式匹配: 動機與理由
? PEP 636, 結構化模式匹配: 教程
? bpo-12782,加圓括號的背景關系管理器現在正式被允許使用,

標準庫中的新特性:

? PEP 618,向 zip 添加可選的長度檢查,

解釋器的改進:

? PEP 626,在除錯和其他工具中使用精確的行號,

新的型別標注特性:

? PEP 604,允許 X | Y 形式的聯合型別寫法
? PEP 613,顯式型別別名
? PEP 612,形參規格變數

重要的棄用、移除或限制:

? PEP 644,要求 OpenSSL 1.1.1 或更新的版本
? PEP 632,棄用 distutils 模塊,
? PEP 623,棄用并準備移除 PyUnicodeObject 中的 wstr 成員,
? PEP 624,移除 Py_UNICODE 編碼器 API
? PEP 597,增加可選的 EncodingWarning

2 新的特性

2.1 帶圓括號的背景關系管理器

現在已支持使用外層圓括號來使多個背景關系管理器可以連續多行地書寫,這允許將過長的背景關系管理器集能夠以與之前 import 陳述句類似的方式格式化為多行的形式,

2.2 更清楚的錯誤訊息

SyntaxError
IndentationError
AttributeError
NameError

2.3 PEP 626:在除錯和其他工具中使用精確的行號

PEP 626 帶來了更精確可靠的行號用于除錯、性能分析和測驗工具,所有被執行的代碼行都會并且只有被執行的代碼行才會生成帶有正確行號的追蹤事件,
幀物件的 f_lineno 屬性將總是包含預期的行號,
代碼物件的 co_lnotab 屬性已被棄用并將在 3.12 中被移除,需要從偏移量轉換為行號的代碼應改用新的 co_lines() 方法,

2.4 PEP 634:結構化模式匹配

增加了采用模式加上相應動作的 match 陳述句和 case 陳述句的形式的結構化模式匹配,模式由序列、映射、基本資料型別以及類實體構成,模式匹配使得程式能夠從復雜的資料型別中提取資訊、根據資料結構實作分支,并基于不同的資料形式應用特定的動作,

match 陳述句接受一個運算式并將其值與以一個或多個 case 陳述句塊形式給出的一系列模式進行比較,具體來說,模式匹配的操作如下:
1. 使用具有特定型別和形狀的資料 (subject)
2. 針對 subject 在 match 陳述句中求值
3. 從上到下對 subject 與 case 陳述句中的每個模式進行比較直到確認匹配到一個模式,
4. 執行與被確認匹配的模式相關聯的動作,
5. 如果沒有確認到一個完全的匹配,則如果提供了使用通配符 _ 的最后一個 case 陳述句,則它將被用作已匹配模式,如果沒有確認到一個完全的匹配并且不存在使用通配符的 case 陳述句,則整個 match 代碼塊不執行任何操作,

2.5 可選的 EncodingWarning 和 encoding="locale" 選項

TextIOWrapper 和 open() 的默認編碼格式取決于具體的平臺和語言區域設定,由于 UTF-8 被用于大多數 Unix 平臺,當打開 UTF-8 檔案 (例如 JSON, YAML, TOML, Markdown) 時省略 encoding 選項是一個非常常見的錯誤,

3 有關型別提示的新增特性

3.1 PEP 604: 新的型別聯合運算子

引入了啟用 X | Y 語法的型別聯合運算子,這提供了一種表示’ 型別 X 或型別 Y’ 的相比使用 typing. Union 更清晰的方式,特別是在型別提示中,

3.2 PEP 612: 形參規格變數

在 typing 模塊中新增了兩個選項以改進用于 PEP 484 的 Callable 提供給靜態型別檢查器的資訊,第一個選項是形參規格變數,它們被用來將一個可呼叫物件的形參型別轉發給另一個可呼叫物件——這種模式常見于高階函式和裝飾器,使用示例可在 typing.ParamSpec 中找到,在之前版本中,沒有一種簡單辦法能以如此精確的方式對形參型別的依賴性進行型別標注,
第二個選項是新的 Concatenate 運算子,它與形參規格變數一起使用以便對增加或移除了其他可呼叫物件的高階可呼叫物件進行型別標注,使用示例可以在 typing.Concatenate 中找到,

3.3 PEP 613: 型別別名

PEP 484 引入了型別別名的概念,只要求它們是不帶標注的最高層級賦值,這種簡單性有時會使得型別檢查器難以區分型別別名和普通賦值,特別是當涉及到前向參考或無效型別的時候,

3.4 PEP 647: 用戶自定義的型別保護器

TypeGuard 已被添加到 typing 模塊用來標注型別保護器函式并改進在型別細化期間提供給靜態型別分析器的資訊,


4 其他語言特性修改

? int 型別新增了一個方法 int.bit_count(),回傳給定整數的二進制展開中值為一的位數,或
稱“位元計量”,(由 Niklas Fiekas 在 bpo-29882 中貢獻,)
? 現在 dict.keys(), dict.values() 和 dict.items() 所回傳的視圖都有一個 mapping 屬性,
它給出包裝了原始字典的 types.MappingProxyType 物件,(由 Dennis Sweeney 在 bpo-40890 中
貢獻,)
? PEP 618: 現在 zip() 函式有一個可選的 strict 旗標,用于要求所有可迭代物件的長度都相等,
? 接受整數引數的內置和擴展函式不再接受 Decimal, Fraction 以及其他可被轉換為整數但會丟
失精度(即具有 __int__() 方法但沒有 __index__() 方法)的物件,(由 Serhiy Storchaka 在
bpo-37999 中貢獻,)
? 如果 object.__ipow__() 回傳 NotImplemented,該運算子將正確地按照預期回退至
object.__pow__() 和 object.__rpow__(),(由 Alex Shkop 在 bpo-38302 中貢獻,)
? 現在賦值運算式可以不帶圓括號地在集合字面值和集合推導式中使用,也可以在序列索引號中使
用(但不能用于切片),
? 函式具有一個新的 __builtins__ 屬性,當函式被執行時它會被用于查找內置符號,而不是在
__globals__['__builtins__'] 中查找,如果 __globals__["__builtins__"] 存在則該
屬性將基于它來初始化,否則將基于當前的內置函式,(由 Mark Shannon 在 bpo-42990 中貢獻,)
? 增加了兩個新的內置函式——aiter() 和 anext() 以分別提供與 iter() 和 next() 對應的異
步版本,(由 Joshua Bronson, Daniel Pope 和 Justin Wang 在 bpo-31861 中貢獻,)
13? 靜態方法 (@staticmethod) 和類方法 (@classmethod) 現在會繼承方法屬性 (__module__,
__name__, __qualname__, __doc__, __annotations__) 并具有一個新的 __wrapped__ 屬
性,此外,靜態方法現在還是與常規函式一樣的可呼叫物件,(由 Victor Stinner 在 bpo-43682 中貢
獻,)
? 復雜目標的注解(PEP 526 定義的除 simple name 之外的一切復雜目標)在運行時不再受 from
__future__ import annotations 的影響,(由 Batuhan Taskaya 在 bpo-42737 中貢獻),
? 類和模塊物件現在可以按需創建空的注解字典,為保證向下兼容,這些注解資料將存盤于物件的
__dict__ 中,這改進了 __annotations__ 的最佳用法;更多資訊請參閱 annotations-howto ,(由
Larry Hastings 在 bpo-43901 中貢獻)
? 由于會產生副作用,現在 from __future__ import annotations 時禁止使用包含 yield 、
yield from 、 await 或已命名運算式的注解,(由 Batuhan Taskaya 在 bpo-42725 中貢獻)
? 未系結變數、 super() 和其他可能改變符號表處理的運算式,現在在 from __future__ import
annotations 時不能用作注解,(由 Batuhan Taskaya 在 bpo-42725 中貢獻)
? float 型別和 decimal.Decimal 型別的 NaN 值的哈希值現在取決于物件身份,以前,即便 NaN
值彼此不等,也都是哈希為 0,在創建包含多個 NaN 的字典和集合時,由于哈希沖突過度,導致
了運行代價可能會二次方增長,(由 Raymond Hettinger 在 bpo-43475 中貢獻)
? A SyntaxError (instead of a NameError) will be raised when deleting the __debug__ constant. (Contributed by Dong-hee Na in bpo-45000.)
? SyntaxError exceptions now have end_lineno and end_offset attributes. They will be None if
not determined. (Contributed by Pablo Galindo in bpo-43914.)

5 新增模塊

? 無,

6 改進的模塊

6.1 asyncio
6.2 argparse
6.3 array
6.4 asynchat、 asyncore 和 smtpd
6.5 base64
6.6 bdb
6.7 bisect
6.8 codecs
6.9 collections.abc
6.10 contextlib
6.11 curses
6.12 dataclasses
6.13 distutils
6.14 doctest
6.15 encodings
6.16 fileinput
6.17 faulthandler
6.18 gc
6.19 glob
6.20 hashlib
6.21 hmac
6.22 IDLE 與 idlelib
6.23 importlib.metadata
6.24 inspect
6.25 linecache
6.26 os
6.27 os.path
6.28 pathlib
6.29 platform
6.30 pprint
6.31 py_compile
6.32 pyclbr
6.33 shelve
6.34 statistics
6.35 site
6.36 socket
6.37 ssl
6.38 sqlite3
6.39 sys
6.40 _thread
6.41 threading
6.42 traceback
6.43 types
6.44 typing
6.45 unittest
6.46 urllib.parse
6.47 xml
6.48 zipimport

7 性能優化

? 現在,建構式 str() 、 bytes() 和 bytearray() 速度更快了(小物件大約提速 30-40%),(由Serhiy Storchaka 貢獻于 bpo-41334 )
? 現在, runpy 匯入的模塊變少了, python3 -m module-name 命令的啟動時間平均加快 1.4 倍,
在 Linux 上, Python 3.9 的 python3 -I -m module-name 匯入了 69 個模塊,而 Python 3.10 只匯入了 51 個模塊(少了 18 個),(由 Victor Stinner 貢獻于 bpo-41006 和 bpo-41718)
? 現在, LOAD_ATTR 指令會使用新的“單獨操作碼快取”機制,對于常規屬性大約會提速 36%,而對于槽位屬性會加快 44%,(由 Pablo Galindo 和 Yury Selivanov 貢獻于 bpo-42093 ),并由 Guido van
Rossum 貢獻于 bpo-42927,基于最初在 PyPy 和 MicroPython 中實作的思路,)
? 現 在, 當 用 --enable-optimizations 構 建 Python 時, 會 在 編 譯 和 鏈 接 命 令 行 中 添
加 -fno-semantic-interposition, 這 會 讓 用 帶 參 數 --enable-shared 的 gcc 構 建
Python 解釋器時提速 30%,詳情請參閱 ‘這篇文章https://developers.redhat.com/blog/2020/06/25/
red-hat-enterprise-linux-8-2-brings-faster-python-3-8-run-speeds/>‘_ ,(由 Victor Stinner 和 Pablo Galindo貢獻于 bpo-38980 )
? bz2 / lzma / zlib 模 塊 用 了 新 的 輸 出 緩 沖 區 管 理 代 碼, 并 在 _compression.
DecompressReader 類中添加 “.readall()“ 函式,現在, bz2 解壓程序提速了 1.09 倍 ~ 1.17 倍,lzma 解壓快樂 1.20 倍 ~ 1.32 倍, GzipFile.read(-1) 快了 1.11 倍 ~ 1.18 倍,(由 Ma Lin 貢獻,由 Gregory P. Smith 審查, bpo-41486)
? 在使用字串式的注解時,函式的注解字典不再是在函式創建時建立了,取而代之的是,注解被存盤為一個字串元組,而函式物件在需要時再延遲轉換為注解字典,這一優化將定義帶注解函式的CPU 時間減少了一半,(由 Yurii Karabas 和 Inada Naoki 貢獻于 bpo-42202)
? 現在,子串搜索函式,如 str1 in str2 和 str2.find(str1) ,有時會采用 Crochemore & Perrin
的“二路歸并”字串搜索演算法,以避免長字串的二次檢索行為,(由 Dennis Sweeney 貢獻于bpo-41972 )
? 為 _PyType_Lookup() 加入了少許優化,以提高型別屬性快取查詢在常見命中情況下的性能,這使得解釋器的平均速度提高了 1.04 倍,(由 Dino Viehland 貢獻于 bpo-43452 )
? 現在,以下內置函式支持更快的 PEP 590 vectorcall 呼叫約定: map() 、 filter() 、 reversed() 、bool() 和 float() ,(由 Dong-hee Na 和 Jeroen Demeyer 貢獻于 bpo-43575 、 bpo-43287 、 bpo-41922、 bpo-41873 和 bpo-41870 )
? 通過移除內部的 RLock , BZ2File 的性能得以改善,這使得 BZ2File 在面對多個同時讀寫執行緒時變得不再安全,類似一直如此的 gzip 和 lzma 中的對應類,(由 Inada Naoki 貢獻于 bpo-43785 )

一起發布的內容還有棄用、移除、移植、位元組碼、編譯、API等方面的內容,略,

Python 3.10.0 官方下載地址

VersionOperating SystemFile Size
Gzipped source tarballSource release25007016
XZ compressed source tarballSource release18726176
macOS 64-bit universal2 installer

macOS

for macOS 10.9 and later

39741684
Windows embeddable package (32-bit)Windows7521592
Windows embeddable package (64-bit)Windows8474319
Windows help fileWindows9559706
Windows installer (32-bit)Windows27194856
Windows installer (64-bit)Windows28315928

注:Python從3.9+開始已不支持 Windows7及更早版本,

Python 3.10.0 安裝和運行

以下是我的嘗鮮操作演練:

IDLE視窗的操作提示符移動編輯框外

與3.8.8版本相比,陳述句的縮進對齊一目了然

終于引進了:分支結構陳述句

不是switch-case, select-case等,而是 match-case

def fib(n):
    match n:
        case 1|2:
            return 1
        case other:
            return fib(n-1)+fib(n-2)

        
for i in range(1,11):
    print(fib(i))

    
1
1
2
3
5
8
13
21
34
55

其中"case other:" 里的other并非關鍵字,但可能就是相當于其他編程語言中的 case else 或 otherwise 或 default 等等,它可以任意寫但效果相同,如下:

def fib(n):
    match n:
        case 1|2:
            return 1
        case anything:
            return fib(n-1)+fib(n-2)

        
fib(5)
5
fib(10)
55

注:官方舉例使用開線:“ case _ :

一個奇怪的小發現

怎么會有賦值功能?

i = 5
match i:
    case 1: print(1)
    case 2: print(2)
    case i: print(i**2)

    
25
match i:
    case 1: print(1)
    case 2: print(2)
    case n: print(i**2)

    
25
match i:
    case 1: print(1)
    case 2: print(2)
    case n: print(n**2)

    
25
match i:
    case 1: print(1)
    case 2: print(2)
    case i: print(n**2)

    
25
match i:
    case 1: print(1)
    case 2: print(2)
    case a: print(i**2)

    
25
match i:
    case 1: print(1)
    case 2: print(2)
    case i: print(a**2)

    
25

a
5
b
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    b
NameError: name 'b' is not defined
match i:
    case 1: print(1)
    case 2: print(2)
    case b: print(i**2)

    
25
b
5

另一個小發現

這算不算bug,還是疏忽了沒更新?新版本中關鍵字 match case 已加亮標注,黃色加亮已是關鍵字的待遇,但是內置庫keyword中的kwlist串列還沒有添加進去,

幫助檔案也還沒有match和case的內容

help('if')
The "if" statement
******************

The "if" statement is used for conditional execution:

   if_stmt ::= "if" assignment_expression ":" suite
               ("elif" assignment_expression ":" suite)*
               ["else" ":" suite]

It selects exactly one of the suites by evaluating the expressions one
by one until one is found to be true (see section Boolean operations
for the definition of true and false); then that suite is executed
(and no other part of the "if" statement is executed or evaluated).
If all expressions are false, the suite of the "else" clause, if
present, is executed.

Related help topics: TRUTHVALUE

help('return')
The "return" statement
**********************

   return_stmt ::= "return" [expression_list]

"return" may only occur syntactically nested in a function definition,
not within a nested class definition.

If an expression list is present, it is evaluated, else "None" is
substituted.

"return" leaves the current function call with the expression list (or
"None") as return value.

When "return" passes control out of a "try" statement with a "finally"
clause, that "finally" clause is executed before really leaving the
function.

In a generator function, the "return" statement indicates that the
generator is done and will cause "StopIteration" to be raised. The
returned value (if any) is used as an argument to construct
"StopIteration" and becomes the "StopIteration.value" attribute.

In an asynchronous generator function, an empty "return" statement
indicates that the asynchronous generator is done and will cause
"StopAsyncIteration" to be raised.  A non-empty "return" statement is
a syntax error in an asynchronous generator function.

Related help topics: FUNCTIONS

help('match')
No Python documentation found for 'match'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.

help('case')
No Python documentation found for 'case'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.

一起學習 PYTHON 的交流Q碼地址: http://qr01.cn/FHYKEa

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/317938.html

標籤:python

上一篇:python 爬蟲愛好者必須掌握的知識點“ 協程爬蟲”,看一下如何用 gevent 采集女生用頭像

下一篇:【玩轉 Python 串列決議式】能用一行代碼寫的,千萬別敲回車!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more