主流程式語言的標準庫中,類似於 fopen 之類的函式的 w a 等控制方法有何利弊?

時間 2021-06-02 16:06:36

1樓:祖與佔

所以要學Haskell啊

開啟檔案System.IO

openFile

::FilePath

->IOMode

->IOHandle

看函式型別就知道是做什麼的啦! IOMode是什麼? System.IO, Handle 是什麼? System.IO

data

IOMode

=ReadMode

|WriteMode||

ReadWriteMode

比rwa(+)易讀, 打錯了編譯器可以檢查出來, 要是說這個要打多點字我無話可說...

然後Ruby裡的

# open(filename, mode="r" [, opt]) → obj

File

.open

(file_path

,io_mode)do

|handle

|#...

end其實就是Haskell裡的

withFile

::FilePath

->IOMode

->(Handle

->IOr

)->IOr

其實會Ruby就會Haskell啦/

2樓:夏雨婷

相對於用bitwise-or來連線各個位,用string作為引數的利是,string裡的內容是有順序的。

也許弊是你未必需要這個順序,比如在fopen裡的這個引數所需要表達的意思。

3樓:布客飛龍

沒學過ruby 但是這玩意兒就是c裡面的東西。。。

r 檔案只可讀,指標指向開頭,如果不存在則失敗r+ 檔案可讀可寫,其他同r

w 檔案只可寫,如果存在則清空,不存在則建立w+ 檔案可讀可寫,其他同w

a 檔案只可寫,指標指向末尾,不存在則建立a+ 檔案可讀可寫,其他同a

4樓:

題目改了啊,原來問的是ruby的File.open,所以可以通過查ruby文件解決。

我來授人以漁。

ri (ruby index) 是用於在終端檢視 ruby 幫助文件的工具。

首先 ri File.open

得到= File.open

(from ruby siteFile.open(filename, mode="r" [, optgt; file

File.open(filename [, mode [, perm]] [, optgt; file

File.open(filename, mode="r" [, opt]) -> obj

File.open(filename [, mode [, perm]] [, opt]) -> objWith no associated block, File.open is a synonym for File.

new. If the optional

code block is given, it will be passed the opened file as an argument and the

File object will automatically be closed when the block terminates. The value

of the block will be returned from File.open.

If a file is being created, its initial permissions may be set using the perm

parameter. See File.new for further discussion.

See IO.new for a description of the mode and opt parameters.

可知open的第二個引數是mode。再看最後一行,於是我們 ri IO.new

出來好多,找重點。

==== IO Open Mode

Ruby allows the following open modes:

"r" Read-only, starts at beginning of file (default mode).

"r+" Read-write, starts at beginning of file.

"w" Write-only, truncates existing file

to zero length or creates a new file for writing.

"w+" Read-write, truncates existing file to zero length

or creates a new file for reading and writing.

Creates a new file for writing if file does not exist.

Creates a new file for reading and writing if file does

not exist.

所以"w"的意思就是

"w" Write-only, truncates existing file

to zero length or creates a new file for writing.

5樓:胖噠

ruby-doc.org/core-1.9.3/File.html#method-c-open說baidu不到是不對的。

好吧改描述了。

那麼再試著回答一下:

這是C的習慣來的,也許改成file.OpenReadOnlyfile.OpenWritable

file.OpenBinary什麼的更好呢不過我個人意見,區別不大。

剛下水的075兩棲攻擊艦是否需要類似於F35B的STOVL戰機來增強其兩棲或制海作戰時的制空制海能力?

需要,非常需要,但是沒有,僅此而已。所謂的不需要,本質上跟當年中國不需要航母,中國不需要四代機,中國不需要大火箭的論調是一回事兒。 龍紋伊 不需要。首先075作戰要求是垂直登陸和兩棲登陸,戰場遮斷和艦隊防空這樣的活輪不到它來幹。首輪打擊之後敵人不會有多少能起飛的飛機。至於戰場遮斷無人機和武直也能很好...

有火影忍者中類似於這樣的詩句嗎?

墨點山河 春野櫻 春去嘉木未成陰,野芳遲發更襲人。三春始綻緣沐雨,寒劍影裡櫻華放。百里凝紅花入刃,豪心化碧印成裝。自來也 遊龍當歸海那幾句已經說爛了,這裡答主就不提了。一醒一夢三生事,輪迴百轉留君名。來去今生生華髮,一默一笑笑仙人。變玄仙法定永珍,豪情爆炎我自狂。漩渦鳴人 破曉爭鳴,直刺蒼穹的光。七...

殲20尾部為什麼不做成類似於F22的那樣呢? ?

Supermode 就說說各自的噴口為什麼是那個樣子的,這個尾部叫發動機噴口,某些發動機的噴口是固定向乙個方向的,有些是可以旋轉的,叫向量發動機,這是前提。J20用的是俄羅斯al31發動機,不能轉動噴口,不是向量發動機,F22的發動機相比它推力大,而且尾噴口可以轉向,上下轉,是二維向量發動機。F22...