Introduction

English

英语发音规则

强调

  • 强调的两个特性:唯一性、不确定性
  • 强调部分重读音节读得最长、最重,音调最高

句子的节奏

句子中的重读- 强读式

没有实际含义的词被强读

强读式
a/eɪ/
at/æt/
from/fraːm/
to/tuː/
the/ðiː/
  • 用到强读式的三种常见情况:
    • 突出强调
      • A: Do you have two new bags? B: No. I have a new
    • 位于句尾
      • I'd love to
    • 说话者边说边思考
      • I'm at...at...a...Chinese restaurant.

短语动词的节奏

判断是否为短语动词:是否会延伸出新的含义 look(看)at != 短语动词

  • 短语动词:很地道
    • work out 运动
    • cut back on 减少
  • 短语动词:有自己特定的重音位置
  • 短语动词 = 动词+副词/介词
  • 通常重读短语动词中的第二个
    • turn off
    • cut back on

非重读

  • 发音时缩短元音部分

    代词my, he, she, me, we, etc.
    介词in, on, by, between, etc.
    be 动词been, be
    助动词do
  • 用 schwa sound,即/ə/取代非重读部分的元音

    代词some, he, she, you, etc.
    介词at, on, in, from, etc.
    连词and, but, or, etc.
    助动词do, am, is, was, etc.
    情态动词should, can, could, etc.
    冠词a, an, the
  • 省略部分音素


句子中的重读-实词

  • 通常我们会重读句子中的实词
  • 句中承载重要信息的单词为实词,通常是名词、动词、形容词、副词等
  • 重读时,拉长单词重读音节中的元音
名词beach, tree, phone, etc.
动词walk, want, enjoy, etc.
形容词happy, tall, good, etc.
副词always, quickly, etc.
疑问词where, when, why, etc.
否定词not, can't, doesn't, etc.

弱读

 弱读式音变规律:
  - 元音弱化为 /ə/
  - 音长变短
  - /h/ 的省略

连续弱读
  - 发音改变,同时读的又快又轻

介词弱读

(at, as, to, for, from,of)句末用强读式,不重读

强读式弱读式
at/æt//ət/
as/æz//əz/
to/tuː//tə/
than/ðæn//ðən/
for/fɔːr//fər/
from/fraːm/, /frʌm//frəm/
of/ʌv//əv/

冠词

强读式弱读式
a/ei//ə/
an/æn//ən/
the/ðiː//ði/(在元音音素前), /ðə/(在辅音音素前)

be 动词弱读

句末用强读式

强读式弱读式
am/æm//əm/
are/ɑːr//ər/
was/wʌz//wəz/
were/wɜːr//wər/
be/biː//bi/

人称代词弱读

强读式弱读式
me/miː//mi/
us/ʌs//əs/
them/ðem//ðəm/
him/hɪm//ɪm/
her/hɜːr//ər/
he/hiː//hi/(句首), /i/(非句首)
she/ʃiː//ʃi/
we/wiː//wi/
you/juː//ju/(在元音音素开头的单词前,或句子结尾), /jə/(在辅音音素开头的单词前)

连词弱读

强读式弱读式
and/ænd//ən/, /n/
but/bʌt//bət/
or/ɔːr//ər/
that/ðæt/(不引导从句)/ðət/(引导从句)

物主代词的弱读

强读式弱读式
his/hɪz//ɪz/
her/hɜːr//ər/, /hər/
your/jʊr//jər/
their/ðer//ðər/

情态动词的弱读

强读式弱读式
can/kæn//kən/
shall/ʃæl//ʃəl/
must/mʌst//məst/
could/kʊd//kəd/
should/ʃʊd//ʃəd/
would/wʊd//wəd/

do 和 does 助动词弱读

助动词用弱读,句末用强读式

强读式弱读式
do/duː//də/(在辅音音素前), /du/(在元音音素前)
does/dʌz//dəz/

have has had 助动词的弱读

强读式弱读式(句首)弱读式(非句首)
have/hæv//həv//əv/
has/hæz//həz//əz/
had/hæd//həd//əd/

连读

相同辅音之间的连读

- 当前一个单词结尾的辅音音素和后一个单词开头的辅音音素相同时,把它们连读

want to

/wɑːnt/ /tu/


辅音与元音之间的连读

- 把前一个单词结尾辅音,当作后一个单词开头,和元音一起发音
- 听感上两个单词像一个词,连读的部分不需要读得很重
- 不重复读已被连读的部

What's up!

/wʌtsʌp/

击穿

  • 代词:he, him, his, her
  • 通常使用弱读形式,会省略/h/这个音(注意:如果这些代词(he,him,his,her)在句子开头,或者在一个意群的开头,我们不会把它中/h/的音省略)
  • 和前一个单词连 Was he hurt? /wʌz hi/

同化

同化是在比较快的语速中,相邻两个词的发音互相影响而产生的语音变化。有些时候,两个音互相影响,会变成另一个音。

  • /d/ + /j/ → /dʒ/ What did you say?
  • /t/ + /j/ → /tʃ/ Nice to meet you
  • /s/ + /j/ → /ʃ/ I miss you so much
  • /z/ + /j/ → /ʒ/ Has your friend come?

失爆

/p/ /b/ /t/ /d/ /k/ /g/ 发音的时候,气流冲破口腔阻碍而发出这些音。

失去爆破:

  • 当爆破音后面跟着其他辅音的时候,通常不会释放气流。
  • 依然作出爆破音的口型和舌位
  • 两个词之间有一个非常小的停顿

音节与重音

双音节词重音

  • 来源于单音节词的双音节词: 重音和单音节词一致,即重音在其词根上。
  • 不来源于单音节词的双音节词中: 多数名词和形容词的重音在第一个音节; 多数动词的重音在第二个音节。

同一个词的不同重音位置

  • 有些双音节词在作为动词、名词(或形容词)时,具有不同的重读音节。一般情况下: 作名词/形容词时,重读在第一个音节 作动词时,重读在第二个音节

含前缀的单词重音

  • 当"前缀+词根”构成的新单词是一个动词时,重音一般放在后面的词根上
  • 当"前缀+词根”构成的新单词是一个名词时,重音则放在前面的前缀上
  • 英语中有一类特殊的前缀,比如a-,be-,with-,不论构成的单词是什么词性,它们的重音永远都在词根上

单词的重音

  • 多音节词中有重读音节,它需要读得更长更响
  • 一个单词有且只有一个重读音节,且重读音节位置是多变的
  • 单词中非重读音节的元音,通常会弱读成/ə/

复合名词的重音

  • 复合名词:两个单词组成,但代表一个新事物
  • 重音规律:通常重音在前

复合形容词的重音

  • 至少由两个单词和连字符(-)组成
  • 重音规律:通常情况下,重音落在被具体说明的那个单词上 good-looking
    • 位于句尾:重音位置不变
    • 后跟名词:重音位置通常转移到第一个单词 a good-looking woman

复合动词的重音

  • “名词+动词”组成的复合动词,重读名词
  • “副词+动词”组成的复合动词,重读动词

含后缀的单词重音

  • 常见的不改变单词重音位置的后缀有: -y, -ness, -ful, -less, -ly, -al, -ous, -ship, -ish, -dom, -some, -wise
  • 常见的将重音位置转移到后缀前一个音节的: -ive, -ian, -graphy, -ial, -ious, -ic, -ical, -ity, -eous, -ion
  • 常见的将重音位置转移到后缀所在音节上的后缀有: -ese,-ee,eer,-ette,-et, -aire, -esque, -ique, -oon

However, by coming into existence one does suffer quite serious harms that could not have befallen one had one not come into existence.

  • "had one not come into existence" 这部分是一个虚拟语气的倒装句,表示对过去事实的假设。

He need not mean literally that (if he were to die)were he to die he would exist in some better state.

  • 原句:If I were you, I would accept the offer. 倒装:Were I you, I would accept the offer. 
  • 原句:If you had told me, I could have helped you. 倒装:Had you told me, I could have helped you.
  • 原句:If it should rain, we will stay at home. 倒装:Should it rain, we will stay at home

Nor is the harm produced by the creation of a child usually restricted to that child.

  • 正常话序The harm produced by the creation of a child is not usually restricted to that child.

  • 原句:I don't like apples. I also don't like oranges. 倒装:I don't like apples. Nor do I like oranges.

  • 原句:I am a teacher. He is a teacher too. 倒装:I am a teacher. So is he.

  • 原句:Only after he had finished his homework, he could watch TV. 倒装:Only after he had finished his homework could he watch TV. 


Sound though I believe my argument to be, I cannot but hope that i am wrong.

尽管我相信我的论点是正确的,但我还是希望自己是错的。 "though" 作为让步状语,引导了一个让步状语从句,使用了倒装句式

"I cannot but" 是一个固定搭配,表示 "我只能" 或 "我不得不”。 I cannot but admire her courage. 我不得不钦佩她的勇气。


show why life is bad irrespective of which of views one adopts.

状语:无论采纳哪种观点 (irrespective of which of views one adopts)


so long as the negative states are not of sufficient intensity to undo the pleasure entirely.

只要负面状态的强度不足以完全抵消快乐. "of" 在这个短语中起到了表示从属关系的作用,表示负面状态具有的强度.


Abraham Maslow writes disapprovingly of our perpetual discontent.

"of" 在这里表示 "关于" 的意思。类似的表达方式还有 "speak of"(谈论)、"think of"(想到)等,都是用 "of" 来表示主题或内容


One need not reject, as Arthur Schopenhauer does, the independent existence of happiness to accept his view that suffering is endemic to and pervasive in life

就像阿瑟·叔本华所做的那样,人们不需要拒绝幸福的独立存在,就可以接受他的观点,即痛苦是生活中的普遍现象。  "endemic to" 是一个固定搭配,表示某种事物在特定环境、地区或群体中普遍存在,"endemic to" 后面需要跟一个名词,表示这种普遍存在的范围或对象。


thus the striving fulfils a desire on the way to fulfilling another desire

To 是介词, 所以用动名词


A suitable analogy is that of a teacher marking a student’s essay or exam

这里的 "that of" 是一个常见的表达,用来引出一个比较或类比的对象。"that" 在这里是一个代词,指代前面提到的 "analogy"(类比),而 "of" 则用来引出这个类比的具体内容,即 "a teacher marking a student’s essay or exam"。

  • A suitable analogy is a teacher marking a student's essay or exam.
  • A suitable analogy is the situation in which a teacher marks a student's essay or exam.

I have not argued, nor need I have argued

"need" 这里作为情态动词,这种用法相对正式,通常出现在书面语境中


Such is the strength of Pollyannaism, that the foregoing sort of pessimism is often dismissed as self-pitying whining of existential weaklings.

"Such is...that..." 的结构用于强调主语的特点或性质,并描述其结果或影响。在这种结构中,"such" 通常用于修饰名词短语。


The news is so shocking that everyone is talking about it.

"so...that..." 的结构通常用于强调程度,并描述其结果或影响。在这种结构中,"so" 用于修饰形容词或副词。


non-procreation need not come at the cost of frustrating coital interests(and a fortiori non-coital sexual interests)

不生育并不一定要以阻碍性交兴趣为代价(更不用说阻碍非性交的性兴趣了) frustrating是做为动词的现在分词


The additional effort that that care takes cannot begin to outweigh the harm of coming into existence, and thus we certainly cannot condone that baby-making that is a mere consequence of coitus.

额外的护理付出无法抵消生命诞生带来的伤害,因此我们当然不能宽恕那些仅仅是性交结果的生育行为。


To the extent that these goods could be obtained without producing children of one's own.

"To the extent that" 是一个常用的短语,用来表示"在...程度上"或者"在...范围内"。


Now the problem with this standard is that of differentiating between disagreements that are actually unreasonable and those that are only perceived to be so

"that of" 是一个常见的表达,用来引出一个比较或类比的对象。"that" 在这里是一个代词,指代前面提到的 "problem"(问题),而 "of" 则用来引出这个问题的具体内容 Now the problem with this standard is that it differentiates between disagreements that are actually unreasonable and those that are only perceived to be so


Instead the reproductive view of sexual ethics maintains that a sexual act must be of the reproductive sort

"be of the reproductive sort" 是一个表达,用来描述性行为的性质。 The workshop will be of the practical sort, teaching attendees how to fix common household problems.


The parents conceive and bring to term a child that they merely hope will be a suitable match. Either way they will love and rear it.

"bring to term" 确实不是一个常用的固定短语。一个更常用的短语是 "carry to term",表示将怀孕进行到足月,即成功地将孩子从怀孕到出生的整个过程。在这个句子中,"bring to term" 的意思与 "carry to term" 类似


The clone is treated as a mere means to the ends of the being cloned

克隆体被视为仅仅是为了实现被克隆者目标的手段 "to the ends of" 是一个介词短语,表示 "为了...的目的" 或 "为了实现...的目标""ends" 在这里是一个名词,表示 "目的" 或 "目标"。


Thus we cannot speak of a new organism as having come into existence prior to conception .

因此,在受孕之前,我们不能说一个新生命体已经诞生。 prior to 介词短语, 在……之前。 as 介词,当作


Thus if some merely conscious being wants more of the same pleasurable experiences it just had, and if that desire and the interest to which it gives rise is morally considerable, this being may have an interest, even if only a weak one, in continue life.

"of" 在这里起到了连接 "more" 和 "the same pleasurable experiences" 的作用,表示数量关系。 "more" 是一个表示数量的词,用于表达某事物的数量比另一事物多。当 "more" 修饰一个名词或名词短语时,需要使用 "of" 来建立它们之间的关系。例如:

  • more of the cake (蛋糕的更多部分)
  • more of those books (那些书的更多本数)

These are principles that it would be rational to adopt were we truly impartial

if we were truly impartial, 表示假设


is of

  • 表示类别或种类:例如 "This book is of the mystery genre."(这本书属于悬疑类别。)在这个例子中,"is of" 用来表示这本书属于某个特定的类别或种类。
  • 表示来源或材料:例如 "The necklace is of gold."(这条项链是金制的。)在这个例子中,"is of" 用来表示项链是由什么材料制成的。
  • 表示关系或相关性:例如 "The lecture is of great importance."(这个讲座非常重要。)在这个例子中,"is of" 用来表示讲座和重要性之间的关系。
  • 表示包含或成分:例如 "The team is of five members."(这个团队由五个成员组成。)在这个例子中,"is of" 用来表示团队包含的成员数量。

For example , no religion I known of currently endorses, as a practical matter, putting to death one’s rebellious son, the biblical commandment to do so notwithstanding

"put to death" 这个短语后面,可以接一个宾语来表示被处死的对象

"no religion I know of" 更加地道和自然,因为 "of" 强调了您所知道的宗教范围。


Moreover, as resistant as people are to the philanthropic argument, they would be still more resistant to the misanthropic one


Often, in the repose of my mid-day, there reaches my ears a confused tintinnabulum from without。

"there" 本身是一个副词,但在英语中,它也可以作为一个虚拟主语(dummy subject)用在句子中。这种结构通常被称为 "there be" 结构。 "there" 起到了虚拟主语的作用,表示存在某种情况(即钟声抵达作者的耳朵)。"a confused tintinnabulum" 是真正的主语。

"from without" 是一个较为古老、正式的表达方式,表示 "from outside" 或 "from the outside"


empty save for the trash left by the crowd

"save for" 是一个表示例外的介词短语,意思是 "除了" save prep. conj 除了


In front of the metal monster stood the slim figure of a young woman.

倒装结构来强调

You’re making being nice a thankless task. "being nice"(动名词短语,作宾语) "a thankless task"(作宾语补足语,说明宾语的状态或性质) 你让友好变成了一件吃力不讨好的事


a bell that tolled for he knew not whom

knew not(即“did not know”,是较为古雅的表达方式) a bell that tolled for whom he didn't know


All I can do is (to) counsel you against leaving with her

“bare infinitive”(裸不定式) All we need to do is wait. The best thing you can do is apologize.


I waited outside the door for about the time it took to smoke a cigarette

"it took to smoke a cigarette" 是一个宾语从句,作为 "the time" 的同位语,说明具体是什么时间


Unwrapping the coats revealed a large pot, the fermented cabbage and pork dumplings inside still steaming hot

主语:Unwrapping the coats(动名词短语作主语) 名词短语(作为宾语补足语) the fermented cabbage and pork dumplings inside still steaming hot这个名词短语进一步描述了“a large pot”中的内容及其状态。


Ye loved to watch them sleep, their even breathing the only sound in the room

这个状语从句实际上是一个省略了系动词“was”的句子,完整的表达应该是:“Their even breathing was the only sound in the room.”


His eyes could easily read deep into the heart of everyone aboard the ship, be they captain or sailor.

  • "be they captain or sailor" 是一种让步状语从句。
  • "be they" 是一种古英语或正式英语中的表达方式,用来表示无论什么情况
  • "Be they rich or poor, all are welcome here."

Shi Qiang had grown excited while speaking and seemed a little put out at Luo Ji's interruption.


The defeat of the strong at the hands of the weak made him a hero

强者在弱者手中的失败使他成为英雄。


You begin to use the new words with scarcely any consciousness of what you are doing

副词 "scarcely" 用来修饰 "any consciousness" 这个短语,强调了 "consciousness" 的程度 Just one more step to complete the process. * "Just" 修饰 "one more step",表达完成过程只需再迈出一步。


Then came the sound of the tub being filled

初始观察

首先,我看到了这个句子:

"Then came the sound of the tub being filled."

这是一个陈述句,描述了一个事件的发生。为了更好地理解它的语法结构,我尝试将其分解成各个组成部分。

句子结构分解

  1. Then:这是一个时间副词,表示“然后”或“接着”,用于指示时间顺序。
  2. came:这是动词“come”的过去式,意思是“来”或“出现”。
  3. the sound of the tub being filled:这是一个名词短语,作为句子的主语。

主语和谓语

通常,英语句子的基本结构是“主语 + 谓语”。然而,在这个句子中,顺序看起来是“副词 + 谓语动词 + 主语”。这是一种倒装结构。

· 主语:the sound of the tub being filled · 谓语:came · 副词:then

倒装结构

英语中,某些副词开头的句子会采用倒装语序,尤其是表示时间或地点的副词。这种结构常用于文学或描述性文本中,以增强表达效果。常见的倒装结构有:

· Here comes the bus. · There goes the bell. · Then came the announcement.

在“Then came the sound of the tub being filled”中,“then”位于句首,引起主谓倒装,将动词“came”提前,主语“the sound...”后置。

名词短语分析

让我们更详细地看一下主语部分:“the sound of the tub being filled”。

  1. the sound:中心名词,意思是“声音”。
  2. of the tub being filled:介词短语,修饰“the sound”,说明是什么样的声音。

进一步分解“of the tub being filled”:

· of:介词。 · the tub:名词,指“浴缸”。 · being filled:这是动词“fill”的被动进行时形式,表示“被填满”的动作正在进行。

“the tub being filled”可以看作是一个动名词复合结构,其中“the tub”是“being filled”的逻辑主语。整个短语“the tub being filled”作为“of”的宾语,意思是“浴缸被填满的声音”。

语法功能总结

· Then:时间副词,修饰整个句子,表示时间顺序。 · came:不及物动词,作谓语。 · the sound of the tub being filled:名词短语,作主语。 · the sound:中心名词。 · of the tub being filled:介词短语作后置定语。 · the tub being filled:动名词复合结构,作介词“of”的宾语。

正常语序

如果不用倒装,这个句子可以写成:

"The sound of the tub being filled came then."

但原句的倒装形式更符合文学表达的习惯,强调了“then”这个时间点,使叙述更加生动。

可能的误区和验证

在分析过程中,我一开始对“the tub being filled”的结构有些困惑。不确定它是现在分词短语还是动名词复合结构。经过思考:

· “being filled”是“be”的现在分词“being”加上“filled”过去分词,构成被动语态的进行时。 · “the tub being filled”整体作为“of”的宾语,可以理解为“浴缸正在被填满的状态”。

因此,更准确地说,这是一个“名词 + 现在分词被动式”构成的复合结构,作为介词“of”的宾语。

类似结构的例子

为了更好地理解,我寻找了一些类似的句子结构:

  1. "Then came the moment of truth."(然后,真相的时刻到来了。) · Then (adv) + came (v) + the moment of truth (subject).
  2. "There appeared a strange light in the sky."(天空中出现了一道奇怪的光。) · There (adv) + appeared (v) + a strange light in the sky (subject).

这些例子都展示了副词开头的倒装结构。

语法术语确认

为了确保使用的术语准确,我查阅了一些语法资料:

· 全倒装:当句子的主语不是代词,且谓语动词是不及物动词(如come, go, be, exist等)时,可以将副词置于句首,谓语动词完全放在主语之前,形成完全倒装。 例子: · "Here comes the bus."(公交车来了。) · "Out rushed the children."(孩子们冲了出去。)

在“Then came the sound...”中,“then”是副词,“came”是不及物动词,“the sound...”是主语,符合全倒装的定义。

句子成分的详细标注

为了更清晰地展示,以下是句子成分的详细标注:

  1. Then - Adverb (时间状语)
  2. came - Intransitive verb (谓语动词)
  3. the sound of the tub being filled - Noun phrase (主语) · the sound - Head noun · of the tub being filled - Prepositional phrase (postmodifier) · of - Preposition · the tub being filled - Noun phrase (object of the preposition) · the tub - Noun · being filled - Passive present participle phrase · being - Auxiliary verb (present participle of 'be') · filled - Past participle

语义解释

从语义上看,这个句子描述的是:

“接着,传来了浴缸被注满的声音。”

即,在一个时间点之后,出现了浴缸正在被水填满时所发出的声音。

可能的变体

为了验证这个结构的灵活性,我尝试改变句子的部分成分:

  1. 改变时间副词: · "Suddenly came the sound of the tub being filled." · “突然,传来了浴缸被注满的声音。”
  2. 改变动词: · "Then appeared the figure of a man." · “然后,出现了一个男人的身影。”
  3. 改变主语: · "Then came the announcement from the principal." · “然后,传来了校长的通知。”

这些变体都保持了相同的倒装结构,验证了原句的语法合理性。

与其他倒装结构的区别

英语中还有其他类型的倒装,如部分倒装(主语和助动词倒装):

· "Never have I seen such a beautiful sight."(部分倒装) · "Only then did I realize the truth."(部分倒装)

与“Then came the sound...”不同,这些句子中助动词提前,而主要动词留在主语后。全倒装则是整个谓语动词位于主语前。

被动语态的使用

“being filled”是被动语态的现在分词形式,表示“正在被填满”。这描述了浴缸正在接受“填满”的动作。如果是主动语态,可能需要一个施动者:

· "Then came the sound of someone filling the tub." · “然后,传来了有人往浴缸注水的声音。”

原句的被动形式更强调“浴缸”的状态,而非谁在进行“填满”的动作。

介词“of”的作用

“of”在这里表示所属或关联,连接“the sound”和“the tub being filled”,说明声音的来源或性质。类似的用法:

· "the color of the sky"(天空的颜色) · "the noise of the crowd"(人群的噪音)

名词短语的核心

“the sound”是整个主语的核心名词,其他部分都是对其进行修饰或限定。这种长名词短语在英语中很常见,通过介词或分词扩展名词的信息。

句子的时态

“came”是过去式,表示这个动作发生在过去。整个句子描述的是过去的一个场景或事件。

可能的语境

这个句子可能出现在叙述性或描述性的文本中,比如小说或故事:

"The house was quiet. Then came the sound of the tub being filled, echoing through the empty hallway."

(房子很安静。然后,传来了浴缸被注满的声音,在空荡的走廊中回荡。)

语法结构图

为了更直观,可以尝试绘制一个简单的语法结构图:

Sentence:
├─ Adverb: Then
├─ Verb: came
└─ Subject: the sound of the tub being filled
   ├─ Head noun: the sound
   └─ Prepositional phrase: of the tub being filled
      ├─ Preposition: of
      └─ Object: the tub being filled
         ├─ Noun: the tub
         └─ Participle phrase: being filled
            ├─ Auxiliary: being
            └─ Main verb: filled

验证主语的长度

有时,主语较长时,为了避免“头重脚轻”,会将主语后置,使用倒装。原句中“the sound of the tub being filled”较长,倒装后使句子更平衡。

比较:

· 正常语序:"The sound of the tub being filled came then."(主语较长,显得头重) · 倒装语序:"Then came the sound of the tub being filled."(更平衡)

其他类似的副词

除了“then”,其他表示时间或方位的副词也可以引起倒装:

· "Here comes the sun." · "There goes my chance." · "Now comes the hard part."

非倒装的情况

如果主语是代词,则不倒装:

· "Then he came."(不是 "Then came he.")

比较:

· "Then came the man."(倒装) · "Then the man came."(也可,但倒装更文学化)

文学效果

倒装结构常用于文学作品中,可以创造悬念或强调:

· "Out of the shadows stepped a mysterious figure." · (从阴影中走出一个神秘的身影。)

原句“Then came the sound...”也有类似的文学效果,先引起读者对“then”之后发生事情的注意。

可能的误用

需要注意,不是所有副词开头的句子都要倒装。只有特定副词(如here, there, then, now等)与不及物动词(如come, go, be等)搭配时,且主语为名词(非代词)时才倒装。

错误示例:

· "Then the sound came the tub being filled."(语序混乱) · "Then came the tub being filled the sound."(结构错误)

与其他语言的对比

在中文中,我们也有类似的表达方式,如:

“接着传来了浴缸注水的声音。”

这里“接着”类似于“then”,“传来了”是动词,“浴缸注水的声音”是主语。虽然中文没有严格的倒装概念,但语序上与英语倒装句相似。

语法功能的测试

为了验证各部分的功能,可以尝试提问:

· What came? The sound of the tub being filled. (主语) · When did it come? Then. (时间状语)

省略的可能性

如果上下文清楚,可以省略部分内容:

· "Then came the sound."(省略“of the tub being filled”)

但原句提供了更具体的信息。

动词的选择

“come”在这里表示“出现”或“传来”,是一个不及物动词。可以替换其他不及物动词:

· "Then arose the sound..." · "Then emerged the sound..."

但“came”是最常见的选择。

名词短语的复杂性

“the sound of the tub being filled”是一个复杂的名词短语,可以进一步分解:

· "the tub being filled" ≈ "the tub that was being filled"(定语从句形式)

因此,整个主语可以理解为:

"the sound of the tub that was being filled"(正在被注满的浴缸的声音)

动名词与现在分词

“being filled”中的“being”是现在分词还是动名词?

· “being”是“be”的现在分词,与“filled”构成被动进行时。 · 整个“being filled”是现在分词短语,修饰“the tub”。

因此,“the tub being filled”是“名词 + 现在分词”的复合结构。

介词短语的功能

“of the tub being filled”作为介词短语,修饰“the sound”,说明声音的来源或性质。这种结构在英语中非常常见:

· "the smell of food cooking"(烹饪中的食物的气味) · "the sight of leaves falling"(树叶落下的景象)

句子的及物性

“come”是不及物动词,不需要宾语。因此,“the sound...”是主语,不是宾语。

比较:

· 及物动词:"Then I heard the sound..."(“heard”是及物动词,“the sound”是宾语) · 不及物动词:"Then came the sound..."(“came”是不及物,“the sound”是主语)

语态的一致性

“being filled”是被动,但“came”是主动。两者语态不同,但这是允许的,因为“being filled”描述的是“the tub”的状态,与主句的主动语态不冲突。

可能的改写

为了进一步理解,尝试用其他结构表达相同意思:

  1. 使用定语从句: · "Then came the sound that the tub was being filled."
  2. 使用主动语态: · "Then someone filled the tub, and the sound came." (但这样改变了原句的重点)

原句的结构最为简洁和生动。

标点的影响

原句没有使用逗号分隔“then”。如果使用逗号:

"Then, came the sound of the tub being filled."

这样“then”更明显地作为独立的时间状语,但倒装仍然成立。不过,原句不加逗号更为常见。

口语中的使用

这种倒装结构在口语中较少使用,更多出现在书面或文学表达中。口语中可能会说:

"Then the sound of the tub being filled came."

但文学性较弱。

历史用法

倒装结构在古英语或早期现代英语中更为常见,如莎士比亚的作品中:

"Hence comes the saying..."(因此有谚语...)

现代英语中,这种结构更多用于特定语境。

学习建议

对于英语学习者,理解倒装结构的关键是:

  1. 识别触发倒装的副词(here, there, then, now等)。
  2. 确认谓语动词是不及物动词(come, go, be, appear等)。
  3. 主语必须是名词(非代词),且通常较长或需要强调。

总结语法结构

综合以上分析,“Then came the sound of the tub being filled.”的语法结构如下:

· Then:时间副词,引导倒装。 · came:不及物动词,谓语。 · the sound of the tub being filled:名词短语,主语。 · the sound:中心名词。 · of the tub being filled:介词短语作后置定语。 · the tub being filled:名词 + 现在分词被动式构成的复合结构。

最终答案

句子:Then came the sound of the tub being filled.

语法结构分析:

  1. 句子类型:陈述句,采用全倒装语序。
  2. 倒装结构: · 副词“Then”置于句首,引起主谓倒装。 · 谓语动词“came”(不及物动词)位于主语之前。
  3. 主语: · “the sound of the tub being filled”(名词短语)。 · 中心名词:“the sound”。 · 后置修饰语:“of the tub being filled”(介词短语)。 · 介词:“of”。 · 宾语:“the tub being filled”(名词 + 现在分词被动式复合结构)。 · “the tub”:名词。 · “being filled”:被动语态的现在分词短语(“being” + “filled”)。
  4. 时态:一般过去时(“came”)。
  5. 语态: · 主句:主动语态(“came”)。 · 分词短语:被动语态(“being filled”)。
  6. 句子成分: · Then:时间状语。 · came:谓语动词。 · the sound of the tub being filled:主语。

句意:接着,传来了浴缸被注满的声音。

这种倒装结构使句子更加生动和文学化,强调了“then”之后发生的事件,同时平衡了较长的主语。


I am late, aren’t I

初始观察

首先,我看到这个句子:

"I am late, aren’t I?"

这是一个反义疑问句(tag question),由两部分组成:前面的陈述部分和后面的疑问部分。反义疑问句通常用于确认或寻求同意。让我们逐步分析其语法结构。

反义疑问句的基本结构

反义疑问句的一般结构是:

[陈述句], [助动词/情态动词 + 主语(代词)]?

其中:

  1. 陈述部分可以是肯定或否定。
  2. 疑问部分(tag)的助动词/情态动词与陈述部分一致,但极性相反(即肯定变否定,否定变肯定)。
  3. 疑问部分的主语必须用代词,且与陈述部分的主语对应。

当前句子的分解

"I am late, aren’t I?"

  1. 陈述部分:I am late · 主语:I · 谓语:am late("am"是系动词,"late"是形容词作表语) · 陈述部分是肯定形式。
  2. 疑问部分(tag):aren’t I? · 助动词:aren’t("are not"的缩写) · 主语:I

反义疑问句的规则应用

根据反义疑问句的规则:

· 陈述部分的谓语是“am”(系动词“be”的第一人称现在时),因此疑问部分应使用“be”的对应形式。 · 陈述部分是肯定,疑问部分应是否定。 · 主语“I”在疑问部分仍用“I”。

然而,标准的“be”动词现在时否定形式为:

· I am not → 缩写:I’m not · 因此,疑问部分的逻辑形式应为“am I not?”。

但英语中“am I not?”的缩写形式通常是“aren’t I?”,而不是“amn’t I?”(因为“amn’t”不是标准形式)。因此,“aren’t I?”是约定俗成的正确用法。

为什么是“aren’t I”而不是“amn’t I”?

  1. 历史原因: · “amn’t”在英语中不存在,因为“am”和“not”的缩写形式难以发音。 · “aren’t”是“are not”的缩写,但在这里被借用于“am not”的疑问部分。
  2. 习惯用法: · “aren’t I?”是英语中唯一被接受的形式,尽管看起来与“am”不一致。 · 其他形式如“am I not?”语法正确但过于正式或冗长;“ain’t I?”是非正式或方言用法。

其他“be”动词的反义疑问句

对比其他人称的“be”动词反义疑问句:

  1. You are late, aren’t you? · 陈述:are(肯定)→ 疑问:aren’t(否定)
  2. He is late, isn’t he? · 陈述:is(肯定)→ 疑问:isn’t(否定)
  3. I am late, aren’t I? · 陈述:am(肯定)→ 疑问:aren’t(否定,特殊形式)

可能的误用

需要注意的是,以下形式是错误的:

· "I am late, amn’t I?"(“amn’t”不存在) · "I am late, ain’t I?"(非正式或方言,不标准) · "I am late, isn’t I?"(主谓不一致)

正式与非正式形式

  1. 正式: · "I am late, am I not?" · 完整形式,语法正确但较少用。
  2. 非正式(标准): · "I am late, aren’t I?" · 最常用的标准形式。
  3. 非正式(非标准): · "I am late, ain’t I?" · 方言或非正式场合,但不受标准英语认可。

其他例子验证

验证其他“am”句子的反义疑问句:

  1. "I am right, aren’t I?" · 正确。
  2. "I am going, aren’t I?" · 正确。
  3. "I am not wrong, am I?" · 陈述部分否定(am not),疑问部分肯定(am)。

否定陈述的反义疑问句

如果陈述部分是否定,疑问部分是肯定:

"I am not late, am I?"

· 陈述:am not(否定)→ 疑问:am(肯定)

语法总结

"I am late, aren’t I?"的语法结构:

  1. 陈述部分: · 主语:I · 谓语:am late(系动词 + 表语) · 时态:一般现在时 · 极性:肯定
  2. 疑问部分(tag): · 助动词:aren’t(are not的缩写,替代am not) · 主语:I · 极性:否定(与陈述部分相反)

特殊规则

“am”的反义疑问句是英语中唯一需要将“are”用于第一人称单数的情况。其他动词的反义疑问句严格遵循助动词一致:

· "I have a car, don’t I?"(错误:应为“haven’t I?”或“don’t I?”取决于“have”是助动词还是实义动词,此处“have”是实义动词,正确形式是“don’t I?”) · "I can swim, can’t I?"(情态动词“can”直接对应)

与其他语言的对比

在中文中,反义疑问句通常用“是吗”或“不是吗”:

“我迟到了,不是吗?”

· 类似于“I am late, aren’t I?”

练习验证

尝试构造其他“am”的反义疑问句:

  1. "I am tall, aren’t I?" · 正确。
  2. "I am the winner, aren’t I?" · 正确。
  3. "I am not happy, am I?" · 正确(陈述部分否定,疑问部分肯定)。

常见错误

学习者可能会犯以下错误:

  1. 使用“amn’t”: · "I am late, amn’t I?"(错误)
  2. 主谓不一致: · "I am late, isn’t I?"(错误)
  3. 忽略“be”动词: · "I late, aren’t I?"(缺少“am”)

口语中的使用

“aren’t I?”在口语中非常常见,而“am I not?”显得正式或古老。例如:

· 口语:"I’m coming with you, aren’t I?" · 正式:"I am coming with you, am I not?"

语法书的解释

根据权威语法书(如《剑桥英语语法》):

· “aren’t I?”是“am I not?”的标准缩写形式。 · 没有“amn’t”这种形式。 · “ain’t”是非标准英语,应避免在正式场合使用。

历史演变

“aren’t I?”的用法可能源于:

  1. 发音便利:“amn’t”难以发音,而“aren’t”更顺口。
  2. 类比其他“be”动词形式(如“isn’t”, “aren’t”)。

其他“be”形式的反义疑问句

对比:

  1. "You are..." → "aren’t you?"
  2. "He is..." → "isn’t he?"
  3. "I am..." → "aren’t I?"(特殊)

否定形式的反义疑问句

如果陈述部分是否定,疑问部分是肯定:

"I’m not wrong, am I?"

· 正确(“am”与“not”结合,疑问部分用“am”)。

总结

“I am late, aren’t I?”是正确的反义疑问句形式。其语法要点:

  1. 陈述部分:“I am late”(肯定)。
  2. 疑问部分: · 助动词:用“aren’t”代替“am not”。 · 主语:I。 · 极性:否定(与陈述部分相反)。
  3. 特殊规则:“am”的反义疑问句必须用“aren’t I?”,因为“amn’t”不存在。

最终答案

句子:I am late, aren’t I?

语法结构分析:

  1. 句子类型:反义疑问句(tag question)。
  2. 陈述部分: · 主语:I · 谓语:am late(系动词“am” + 形容词“late”作表语) · 时态:一般现在时 · 极性:肯定
  3. 疑问部分(tag): · 结构:助动词 + 主语(代词) · 助动词:aren’t(“are not”的缩写,用于替代“am not”) · 主语:I · 极性:否定(与陈述部分的肯定相反)
  4. 特殊规则: · “am”的反义疑问句必须用“aren’t I?”,因为英语中无“amn’t”形式。 · “am I not?”语法正确但过于正式;“ain’t I?”是非标准用法。
  5. 句意:我迟到了,不是吗?(用于确认或寻求同意)

正确性验证:

· 这是标准英语中唯一接受的“am”反义疑问句形式。 · 其他形式(如“amn’t I?”, “isn’t I?”)均为错误。


I’d love to go to china ~ So would I

是的,“So would I” 是对 “I’d love to go to China” 的 完全正确且地道 的回答!以下是详细分析:

语法解析:

  1. 原句结构: “I’d love to go to China.” · I’d = I would(虚拟语气/委婉表达愿望) · 核心助动词:would
  2. 回应结构: “So would I.” · So + 助动词(would) + 主语(I) · 表示 “我也一样”,且严格遵循原句的 助动词(would) 和 肯定语义。

为什么正确?

· 助动词一致性:回应必须复用原句的助动词(此处是 would)。 ✅ So would I(正确) ❌ So do I(错误,与原句助动词不一致) · 倒装结构:So + 助动词 + 主语 是英语标准倒装句式,表示相同情况。 例如: A: I can swim. B: So can I. · 语义匹配:原句表达愿望(would love to),回应表示相同愿望。

对比错误用法:

原句 正确回应 错误回应 错误原因 I’d love... So would I. ❌ So do I. 助动词不匹配(would≠do) ❌ Me too. 非正式口语可用,但语法不严谨 ❌ So I would. 未倒装(正确倒装:So would I)

其他正确回应方式:

  1. 正式/书面: So would I. (最标准) I would too.
  2. 口语化: Me too! Same here! (口语中可接受,但缺少语法严谨性)

进阶规则:否定句如何回应?

若原句为否定,需用 “Neither/Nor + 助动词 + 主语”:

A: I wouldn’t go there. B: Neither would I.

总结:

· ✅ “So would I” 是语法完美且地道的回答。 · ✅ 严格遵守 “So + 助动词 + 主语” 结构,助动词(would)与原句一致。 · ✅ 适用于所有含助动词(can/will/should/would 等)的肯定句附和。

例句扩展:

A: She should study harder. B: So should you.

A: They will join us. B: So will we.


There's someone waiting for you .是正确的, 但是There was a noise waking me up. 就是错误的,为什么?

这是一个非常敏锐的语法观察!两句话表面结构相似,但核心差异在于 分词(-ing形式)与所修饰名词的逻辑关系。以下是详细解析:

正确句子分析:

✅ There's someone waiting for you. (有人在等你。)

· someone(人)是 waiting(等待)这个动作的主动执行者 · 逻辑关系 = Someone waits for you. → 分词 waiting 是 someone 的主动行为 · waiting for you 是 someone 的后置定语(= who is waiting for you)

错误句子分析:

❌ There was a noise waking me up. (× 有一个正在吵醒我的噪音。)

· a noise(噪音)无法主动执行 "waking"(吵醒) 这个动作 · 逻辑矛盾 = 噪音是"无生命体",不能像人一样主动"wake someone up" · 正确逻辑应是:噪音导致我醒来(因果被动关系)

错误原因总结:

问题类型 错误原因 逻辑主谓关系 a noise(无生命主语)不能主动执行 waking(需要生命体主动执行的动作) 分词功能误用 waking 作为现在分词表示主动动作,但此处需要表达 因果影响 语义冲突 原句暗示 "噪音正在主动吵醒你",不符合客观事实

正确改写方案:

根据要表达的语义,可选择以下结构:

  1. 用定语从句(明确被动关系): ✅ There was a noise that woke me up. (有个噪音把我吵醒了。) → that woke me up 说明噪音是"导致醒来的原因"
  2. 用过去分词表被动影响: ✅ There was a noise coming from the kitchen. (有个从厨房传来的噪音。) → 现在分词修饰无生命体时,只能描述其来源/状态(不能表主动行为)
  3. 调整句式(更自然): ✅ I was woken up by a noise. (我被一个噪音吵醒了。) → 被动语态直接体现因果关系

核心语法规则:

现在分词(-ing)作后置定语时,所修饰的名词必须是该动作的主动执行者

· ✅ 有生命体: a girl singing(唱歌的女孩) birds flying(飞翔的鸟) · ❌ 无生命体(除非拟人或特殊动词): a book interesting me(× 错误) → 应改为:a book that interests me(让我感兴趣的书)

对比更多例子加深理解:

正确用法 错误用法 原因分析 ✅ There's a dog barking. ❌ There's a tree falling me. 树不能主动"fall"(砸到)人 (有狗在叫) (× 有棵树正在砸我) → 应改为:that fell on me ✅ There's water running. ❌ There's a song enjoying me. 歌曲不能主动"enjoy"人 (有水流出来) (× 有首歌正在享受我) → 应改为:that I enjoy

特殊例外情况:

少数拟人化表达或特定动词允许无生命主语 + -ing:

✅ The wind whispering in the trees(风在树间低语)→ 拟人 ✅ The news shocking everyone(震惊所有人的新闻)→ 动词 shock 本身隐含"施加影响"

但 wake up 需要有意识的行为主体,因此原句 a noise waking me up 始终错误。

总结:

  1. There's someone waiting for you 正确 → "人"可主动执行"等待"
  2. There was a noise waking me up 错误 → "噪音"不能主动执行"吵醒"
  3. 解决方案: · 用定语从句(that woke me up) · 换被动语态(I was woken up by a noise) · 调整分词为描述状态(a noise coming from...)

we've got a great time.

是的,这句话存在明显问题。 以下是详细解析和修正建议:

核心错误:动词搭配不当

❌ 原句:"We've got a great time."

(✖ 直译:我们“拥有”一段美好时光 → 不符合英语表达习惯)

✅ 正确表达:

"We're having a great time." = 我们(此刻)玩得很开心。

错误原因分析:

  1. 动词误用: · have got = 表示“拥有”具体事物(如物品、属性) ✅ We've got a car.(我们有一辆车) ✅ She's got blue eyes.(她有蓝眼睛) · "a great time"(美好时光)是 抽象体验,需搭配动态动词 "have"(体验)而非静态的 "have got"(拥有)。
  2. 固定搭配规则: 表达目的 正确结构 错误结构 享受当下时光 have a great time ❌ have got a great time 拥有某物 have got a [物品] ✅

对比正确例句:

场景 正确表达 错误表达 在派对中玩得开心 We're having a great time! ❌ We've got a great time. 回忆过去的美好经历 We had a great time last night. ❌ We've got a great time last night. 邀请别人一起享受 Let's have a great time! ❌ Let's have got a great time.

"have got" 的正确使用场景

仅用于替代 "have" 表示“拥有”(常见于英式口语):

· ✅ I've got a new phone. = I have a new phone. · ✅ They've got no idea. = They have no idea. 但不可用于表示“进行体验”。

其他常见搭配 "a great time" 的动词:

  1. give(给予他人美好体验): The concert gave us a great time.
  2. spend(度过时光): We spent a great time together.
  3. make(创造美好时光): Let's make it a great time!

总结:

  1. 原句错误: "We've got a great time." → 混淆 "拥有"(have got) 和 "体验"(have)。
  2. 修正方案: · 若描述 当下正在享受 → "We're having a great time." · 若描述 过去经历 → "We had a great time."
  3. 牢记规则: "a great time" 永远搭配动态动词 "have"(或其变体) ✅ have / are having / had / will have a great time ❌ have got a great time

最终正确版: 🎯 "We're having a great time!" (我们玩得超开心!)


There is no object in making myself conspicuous

这句话 "There is no object in making myself conspicuous" 是英语中一种较为正式且略带文学色彩的表达,其核心含义需要结合语境理解。以下是逐层解析:

字面拆解与直译:

· "There is no object in..." = "...毫无意义/没有价值" (此处的 object 意为 目的、意义(purpose/point),属于较正式用法) · "making myself conspicuous" = "让自己引人注目" (conspicuous = 显眼的,惹人注意的)

直译: "让自己惹人注目毫无意义。"

深层含义:

这句话表达了说话者的 价值判断或态度,通常隐含以下逻辑:

  1. 否定某种行为的必要性 (刻意吸引注意是徒劳的)
  2. 反映谦逊或务实的态度 (不追求浮夸,倾向低调)
  3. 可能暗含讽刺 (批评他人哗众取宠的行为)

语境与使用场景:

场景 1:自我反思(谦逊立场)

"I could wear that flashy suit to the meeting, but there's no object in making myself conspicuous. Better to keep it professional." (“我可以穿那套花哨西装去开会,但刻意引人注目毫无意义。保持专业更重要。”)

场景 2:评价他人(讽刺意味)

"He jumps on every table to shout his opinions, but there's no object in making himself conspicuous like that. Real influence comes from substance." (“他总跳上桌子高谈阔论,可这般哗众取宠毫无意义。真正的影响力源于实力。”)

场景 3:哲学思考

"In a world focused on vanity, there is no object in making oneself conspicuous. True worth lies in quiet integrity." (“在浮华的世界里,博人眼球毫无意义。真正的价值在于低调的品格。”)

语法结构分析:

部分 功能 关键点 There is no object 主句(否定存在性) object = 抽象名词,表"意义"(非具体"物体") in making myself conspicuous 介词短语作状语 making(动名词) + myself(反身代词)→ "使自己处于显眼状态"

近义表达对比:

表达方式 语气 差异点 There's no point in showing off. 口语化 直接批评"炫耀" Being conspicuous serves no purpose. 中性 弱化主观判断 It's futile to draw attention to oneself. 书面化 强调"徒劳"(futile) 原句 There is no object in... 正式/文学 含蓄典雅,带哲理色彩

常见误译与修正:

· ❌ 误译:"没有物体让我显眼" (错误将 object 理解为具体物体) · ✅ 正译:"刻意引人注目毫无意义" 或 "我不需哗众取宠"

为何用 "object" 而非常见词汇?

· object 在此是 古英语残留的正式用法(≈ purpose),多见于: · 文学/哲学文本 · 正式演讲或书面论述 · 体现说话者的教养或保守立场 · 日常口语中更常用: ✅ There's no point in... ✅ It's meaningless to...

总结:

· 核心语义:刻意吸引注意力是徒劳的(强调低调的价值观)。 · 使用场景:正式场合、文学表达、批判虚荣行为。 · 语气特征:含蓄典雅,略带批判或自省。 · 中文等效表达: "哗众取宠,毫无意义。" "我不愿做那沽名钓誉之事。"

掌握此句的关键在于理解 "object" 的抽象含义 及 "conspicuous" 的负面色彩,二者结合形成对"博眼球"行为的否定。


She took a real delight in picturing to me the agonies that would be endured by the various people in the village whom for some reason or other she had it in for.

好的,这是一个非常精彩的句子,充满了情感和叙事色彩。我们来对它进行详细的语法分析。

句子原文:

She took a real delight in picturing to me the agonies that would be endured by the various people in the village whom for some reason or other she had it in for.

中文大意:

她乐此不疲地向我描绘村里那些不知为何得罪了她的各色人等将要遭受的种种痛苦。

总体结构分析:

这是一个复合句,包含一个主句和一个定语从句(其中又嵌套了另一个定语从句)。主句的结构是 “She took a real delight in...”,后面所有的内容都是“in”的宾语,说明她“delight”(乐此不疲)的具体内容。

逐层分解:

  1. 主句 (Main Clause)

· 主语 (Subject): She · 谓语 (Predicate): took · 宾语 (Object): a real delight · 状语 (Adverbial): in picturing to me the agonies... · 这个介词短语“in picturing...”充当方式状语,解释她“如何”获得乐趣。 · picturing 是动名词,作介词“in”的宾语。 · to me 是间接宾语,说明“描绘”的对象。 · the agonies 是“picturing”的直接宾语。

  1. 定语从句一 (First Relative Clause) - 修饰“agonies”

· 引导词/主语 (Connector/Subject): that · “that”指代先行词“the agonies”,并在从句中作主语。 · 谓语 (Predicate): would be endured · 这是一个过去将来时的被动语态,表示“(痛苦)将会被承受”。 · 状语 (Adverbial): by the various people in the village... · “by the various people”是动作“endured”的施动者。 · “in the village”是介词短语,作后置定语,修饰“people”,意思是“村里的人”。

  1. 定语从句二 (Second Relative Clause) - 修饰“people”

· 引导词/宾语 (Connector/Object): whom · “whom”指代先行词“the various people”,并在从句中作宾语。 · 主语 (Subject): she · 谓语 (Predicate): had it in for · 这是一个固定的习语 (Idiom),意思是“对……怀恨在心;伺机惩罚”。 · 状语 (Adverbial): for some reason or other · 这是一个插入的介词短语,作原因状语,意思是“因为某种原因”。

核心难点与精彩之处:

  1. 动词短语 (Phrasal Verbs/Idioms): · took delight in: 以……为乐,从……中获得乐趣。 · had it in for (sb): 这是一个非常重要的习语,表示对某人积怨已久、心怀不满、想找麻烦。这个习语为句子增添了强烈的情绪色彩。
  2. 嵌套的从句结构 (Nested Clause Structure): 句子的复杂性在于从句套从句。 · 主句:She took delight in picturing the agonies. · agonies 被从句修饰:agonies that would be endured by the people. · people 又被从句修饰:people whom she had it in for.
  3. 时态与语态 (Tense and Voice): “would be endured” 使用了过去将来时的被动语态,这表明“痛苦”是她在“描绘”(picturing)这个过去时间点之后“将会”发生的事,并且是村民们“被迫承受”的。这精确地传达了她是在想象和预言他人的不幸。

总结:

这个句子成功地描绘了一个心怀恶意、幸灾乐祸的人物形象(She)。通过复杂的语法结构,作者将她的快乐(delight)来源清晰地展现出来:不仅仅是想象痛苦本身,更是想象那些她所憎恨的特定对象承受未来的痛苦。整个句子的逻辑严密,层层递进,是英语长句的一个经典范例。


I, being made of stuff less stern, stepped into a taxi

好的,这个句子非常优美,使用了典型的“独立主格结构”来提供背景信息。我们来详细分析它的语法结构。

句子原文

I, being made of stuff less stern, stepped into a taxi.

中文大意

我,由于天生不是那么刚强的料,便招手叫了一辆出租车。 (意译:由于我性格没那么坚强/吃不了苦,所以我选择了坐出租车。)

总体结构分析

这是一个简单句,但其主语“I”被一个分词短语“being made of stuff less stern”所修饰。这个分词短语作为插入成分,解释了主语执行主要动作(“stepped into a taxi”)时的状态或原因。

核心主干非常简洁:I stepped into a taxi.(我上了一辆出租车。) 其余部分都是用来修饰主语“I”的。

逐层分解

  1. 主语 (Subject)

· I · 句子的核心执行者。

  1. 插入语/主语补足语 (Parenthetical / Subject Complement)

· , being made of stuff less stern, · 这是一个现在分词短语,用作状语,对主语“I”进行补充说明。两边的逗号表明它是句子的插入成分,提供额外信息,如果去掉,主干依然完整。 · being made: 现在分词的被动语态("be made of"的-ing形式),表示“被构成/由……组成”。 · of stuff less stern: 介词短语,作方式状语。 · stuff: 名词,这里比喻性地指“性格材料”、“品性”。 · less stern: 形容词短语作后置定语,修饰“stuff”。“stern”意为“严厉的、坚毅的”,“less stern”即“不那么坚毅的”、“软弱的”。 · 这个短语的整体功能: 解释主语“我”所具有的某种特质——“由不那么坚毅的材料构成”,即“我心肠比较软”或“我吃不了苦”。它在句中主要表示原因。

  1. 谓语 (Predicate)

· stepped · 句子的核心动作。

  1. 状语 (Adverbial)

· into a taxi · 介词短语,作方向状语,说明“step”的方向是“进入一辆出租车”。

句子成分关系图

(原因:由于我是由不那么坚毅的材料构成的), I (主语), being made of stuff less stern (主语的背景/状态/原因), stepped (谓语) into a taxi (方向状语).

核心语法点:分词短语作状语

这个句子精彩之处在于使用了“主语 + 分词短语, + 主句”的结构。

· 作用:这种结构非常简洁、地道,常用于书面语和文学作品中。它取代了冗长的状语从句(如:Because I was made of stuff less stern, I stepped into a taxi)。 · 逻辑关系:在这个句子中,分词短语主要表示原因。正是因为“我性格不够坚强”(无法忍受步行或其他更艰苦的方式),所以才导致了“我选择乘坐出租车”这个结果。

总结

这个句子通过一个简单的动作(搭乘出租车)和一个深刻的原因说明(性格使然),巧妙地塑造了人物的自我形象,并暗示了与他人(可能选择步行或忍受苦难的人)的对比。其语法结构的核心是使用分词短语“being made of...”作为插入语,来表达动作背后的原因。


Nowhere else is our institutional introversion borne out than at the Merriam-Webster holiday parties

好的,这是一个非常精彩的句子,它使用了复杂的语法结构来达到强调的目的。我们来一步步分析。

句子原文

Nowhere else is our institutional introversion borne out than at the Merriam-Webster holiday parties.

中文大意

没有哪个地方比韦氏词典的假日派对上更能体现我们机构的内向特质了。 (意译:我们机构的内向性格,在韦氏词典的假日派对上表现得最为淋漓尽致。)

总体结构分析

这是一个由否定副词 Nowhere else 开头的倒装句,其核心是一个比较结构:“Nowhere else... than...”(没有哪里比……更……)。这个结构旨在强烈强调“韦氏词典的假日派对”是证明其“机构内向性”的最佳场所。

正常语序的思维逻辑是: Our institutional introversion is borne out more at the Merriam-Webster holiday parties than anywhere else. (我们机构的内向性格在韦氏词典的假日派对上比在任何其他地方都得到更充分的证实。)

但原句通过倒装,语气更强烈、文笔更优美。

逐层分解

  1. 状语 (Adverbial) - 引发倒装

· Nowhere else · 这是一个否定副词短语,意为“没有其他地方”。当它置于句首时,句子需要部分倒装。

  1. 谓语动词 (Predicate Verb) - 倒装部分

· is · 这是系动词“be”的第三人称单数形式。由于 Nowhere else 开头,主语和谓语动词需要倒装,所以 is 被提到了主语前面。

  1. 主语 (Subject)

· our institutional introversion · introversion(内向)是核心名词。 · institutional(机构的)是形容词,修饰“introversion”。 · our(我们的)是所有格形容词。

  1. 主语补足语/谓语部分 (Subject Complement / Predicate)

· borne out · 这是动词短语“bear out”的过去分词形式,意为“证实、证明、支持”。 · “is borne out” 一起构成被动语态,意思是“(我们机构的内向性格)被证实”。

  1. 比较状语 (Comparative Adverbial)

· than at the Merriam-Webster holiday parties · 这是一个由“than”引导的比较状语从句的省略形式。 · 其完整形式可以理解为 “than (it is borne out) at the Merriam-Webster holiday parties”。 · at the Merriam-Webster holiday parties(在韦氏词典的假日派对上)是介词短语,具体指出了比较的对象。

核心语法点

  1. 倒装 (Inversion): · 规则:当具有否定意义的副词或短语(如 never, seldom, rarely, nowhere 等)置于句首时,句子需要采用疑问句的语序,即“助动词/情态动词/be动词 + 主语 + 主要动词”。 · 本例:Nowhere else + is + our institutional introversion + borne out...
  2. 比较结构 (Comparative Structure): · 这是一个特殊的比较级用法,虽然没有出现 more 或 most,但“Nowhere else... than...”这个结构本身就表达了最高级的含义,相当于 “...is most borne out at the Merriam-Webster holiday parties.”
  3. 词汇亮点: · institutional introversion: 将“内向”这种个人性格特质赋予了“机构”,是一种拟人化的修辞手法,非常生动。 · borne out: 一个正式且地道的短语,比 “proved” 或 “shown” 更具文学色彩。

句子成分关系图

Nowhere else (地点状语) is (系动词,因倒装提前) our institutional introversion (主语) borne out (主语补足语/表语) than at the Merriam-Webster holiday parties (比较状语)。

总结

这个句子通过倒装和隐含的最高级比较结构,以一种极其有力且优雅的方式,强调了“韦氏词典的假日派对”是其“机构内向”文化最典型的体现。它不仅在传递信息,更是在营造一种风格和语气,非常适合用于评论性或文学性的文本中。


Philosophy

西方哲学史

哲学是什么


  • 哲学不具备一门科学知识应 该具备的最基本特征;昔遍性和 必然性。

    * 科学知识、科学技术是我切认识世界、改造世界的工具和手段。
    
  • 哲学不是自然科学式的科学。

  • 哲学应该是人的精神家园。

  • 哲学和科学一样讲理性。

  • 哲学和宗教一样,起源于終 极关怀的问题。

哲学与自然科学的区别

  • 研究的对象区别 1. 科学知识的对象——-现实性 2. 哲学的对象——————理想性
  • 可验证性 _ 自然科学 经验的验证 事实的验证 实验的验证 _ 哲学 * 理论论证,逻辑

学习哲学是学习哲学家面对怎样的问题,以及解决问题的方式。仅仅是学习哲学的知识内容是过时的。

学哲学一定要学哲学史,学哲学史就是学哲学家的思想,就是读书。

学哲学应该注意的问题

  • 了解哲学家的问题
  • 熟悉哲学家的术语
  • 沿着哲学家的思路
  • 理解哲学家的思想

希腊人哲学思维的特点:

  • 偏爱非个人性的,更关注带有普遍性的东西
  • 试图给事物的存在找出合理的原因
  • ::学以致知::

哲学的诞生

西方哲学的第一个概念;本原(arche)

早期自然哲学的局限: 1、缺乏自然科学的支持。 2、建立在经验观察的基础上。 3、众说纷还,莫衷一是。 4、无穷后退不可能。

认识道路的区别


  • 意见之路:非存在。即存在又不存在的状态,即现象。
  • 真理之路:存在。不动不变的。 ::存在::是西方哲学的核心概念。

巴门尼德的贡献:

  • 确定了形而上学的研究对象。
  • 确定了思辩学的一个基本公式:思维与存在的同一性。
  • 在哲学中开始了推理论证。

苏格拉底的问题

普罗泰戈拉约的两个命题:

  • 人是万物的尺度。
  • 一切理论都有其对立的说法。

在古希腊时代,智者否定知识的可能性,认为一切都是意见。每个人都是万物的尺度。

德性( arete) 在希腊语中原指事物的特性、品格、特长功能,即使一事物成为该事物的本性。

未经理性审慎的生活是不值得过的生活。--苏格拉底 德性即知识 无知即罪恶

苏格拉底认为人要以对自己德性的自觉作为一切行动的根本前提,一切行为要以一个善的为意志前提,人的行为才是善的。

通过理性认识把握事物的本质。

休谟问题 由 18 世纪英国哲学家休谟提出,主要是指因果问题和归纳问题。

柏拉图的理念论

可感世界和理念世界(普遍性、必然性)

所谓-理念,柏拉图使用的原文是 idea 和 eidos(多数时候用的是 idea),这两个概念均出自动词 idein(看),本义指-看见的东西-形状,转义为灵魂所见的东西。在英文中通常以大写的 ldea 与小写的 idea 来区别客观的-理念"与主观的-观念”。

“理念〞是从苏格拉底关于“是什 么”的定义而来,它的基本规定之一就 是“由一种特殊性质所表明的类”。

理念并非单纯的抽象概念,而是超越于个别事物之外并且作为其存在之根据的实在。

事物和理念的关系

柏拉图对事物和理念关系的两种解释 _ 分有 具体事物之所以存在是因为它们分有了同名的理念。 _ 模仿 造物主是根据理念来创造县体事物的,所以事物因摹仿理念而存在。

柏拉图主张,一般和个别是完全分商的两个世界。理念世界是存在手可感世界之外的另一个世界。可感世界是由于分有或者 摹仿了理念世界的模型而变成的。

客观唯心主义

理念是事物的共相 理念是事物存在的根据 理念是事物摹仿的模型 理念是事物追求的目的

可感世界—可感而不可知 感觉的对象 理念世界—可知而不可感 思想的对象

慼觉经验是相对的、偶然的不可靠的,经验无论怎么重复,人们都不可能从中找到普遍性和必然性。

经验论无法解决普遍性和必然性的问题题。

先验论 认为人的知识是先于感觉经验、先于社会实践的东西,是先天就有的。

柏拉图的理念论最重要的目的是给知识提供根据。

理念论的困境

  • 理念的普遍性 恶的丑的
  • 理念的分有问题 分有整体,还是部份
  • 第三者
  • 分离 如果理念世界与可感世界是分离的,那么如何认识理念世界。而理念世界又怎么对可感世界发生作用。

通种论

打通理念与理念之间的关系

哲学要追问的是现象界背后的本质。

亚里士多德的形而上学

知识的科学分类: _ 理论知识 _ 实践知识 * 创制知识

亚里士多德时期的原因,意义接近于于一个事物存在所需要或者说必备的、充分的条件。

亚里士多德将构成事物存在的条件归结为四种,即“四因说”。 _ 质料因 ————-质料 _ 形式因 ————- 形式 _ 动力因 ————- 形式 _ 目的因 ————- 形式

亚里士多德的形而上学: _ 存在论 _ 实体论 * 神学

存在是不可以定义的 存在是怎么存在的,即有在的意义是什么? _ 偶然的意义 _ 本然的意义 —— 范畴

范畴体系=世界的逻辑结构

最重要的范畴是实体(存在)

信仰的时代

* 基督教精神
* 教父哲学
* 经院哲学

西方文明两大源头: _ 希腊文明(雅典) _ 希伯来一基督教文明(耶路撒冷)

中世纪的三个基本要素: _ 罗马帝国 _ 基督教 * 日尔曼人

基督教对哲学的贡献: _ 超验性 _ 内在性 _ 自由的问题 _ 超自然观念 教父哲学 —- 圣奥古斯丁

神正论(神义论): 基督教哲学名词,认为世界之所以存在是由于上帝的存在。

理性与信仰的关系

经院哲学: 最初在查理曼帝国的宫廷学校以及基督数的大修道院和主教管区的附属学校发展起来的基督教哲学

经院哲学关注的一个重要问题: 一般 ———— 个别 共相 ———— 殊相

文艺复兴和宗教改革

文艺复兴: 14 世纪至 16 世纪在欧洲兴起的一场有关艺术、文学、自然科学和建筑等各方面的,思想文化运动。由于其搜来整理古希腊文献的杰出工作,通常被称之为“文艺复兴”,而它的实质则是人文主义运动。

人文主义: 指与神学相区别的那些人文学科,包括文法、修辞学历史学、诗艺、道德哲学等等。到了 19 世纪人们开始使用“人文主义”一词来概括文艺复兴时期人文学者对古代文化的发掘、整理、研究工作,以及他们以人为中心的新世界观。

宗教改革: 基督宗教在 16 世纪至 17 世纪进行的一次改革化表人物有马丁·路德、加尔文及慈运理等人,最終分割出了新教与旧教。

新时代的曙光: _ 世界的发现 _ 人的发现 * 科学的发现

早期近代哲学 经验论 —— 弗兰西斯•培根 唯理论 —— 笛卡尔

主体性的觉醒

希腊哲学重视经验的自然主义和科学精神

基督教哲学重视超验性的形而上学

启蒙主义三大敌人: _ 封建专制制度 _ 宗教迷信 * 愚昧落后

经验论与唯理论

笛卡尔的思想: _ 方法论 理性演绎法 _ 天赋观念

笛卡尔要求哲学的基本原理必须满定两个条件。 _ 第一,它们必须是明白而清晰的人心在注意思考它们时,一定不能怀疑它们的真理; _ 第二,我们关于别的事物分面所有的知识一定是完全依靠那些原理的以至于我们虽然可以离开依靠于它们的事物。单独了解那些原理,可是离开那些原理,我们就一定不能知道依靠于它们的那些事物。

笛卡尔认为: _ 感觉经验是不可靠的 _ 梦境中的一切是不可靠 _ 所有形象都可能是梦境中的东西 _ 数学也可以怀疑 * 上帝的存在也是可疑的

笛卡尔认为“我在怀疑”本身是无可置疑的—— 我思故我在

“我思故我在”这个命题构成了整个近代哲学的开端。

我是一个心灵实体,这个心灵实体的本质乃是“思想”。

“我思故我在”是笛卡尔哲学体系中无可置疑的第一原理,笛卡尔由此确立了理性的地位。

笛卡尔通过怀疑方法确立我思的过程.亦即通过否定性的方式,排除知设内容,最终剩下抽象一般的认识主体的过程,也就是确立主体性的过程。

构成笛卡尔形而上学体系的原理: 1. 我思故我在 2. 上帝存在 3. 物质世界存在

笛卡尔关于上帝存在的证明: 我们通过怀疑的方式确立了我思故我在,但是除此之外我们没有肯定任何东西。在我的思想中有一个无限完满的上帝的概念。我肯定不是上帝概念的原因,它一定另有原因。由此我们只能说,在我们之外,有一个无限完满的心灵。它把这种观念赋予我的心灵,所以我有上帝观念。 就上帝这一表征着最完美的存在的观念而论,显然我不可能是它的原因,它只能源于一个更加完满的本性。所以,我们只能说有一个比我更加完满的存在将这个观念放进我的心灵之中,这个完满的存在就是上帝。因为欺骗和谬误这些非实在的东西与上帝这样一个绝对实在的完满属性不相符合,如果上帝给予了我们的认识能力是贻误人生的,他使我们认假为真,那他就是一个骗子。现在,我们知道上帝是完满的,因而不可能欺骗我们,于是我们最大的怀疑便连根铲除了。这就是说,由于确信上帝的时实在性和完满性,我现在也确信物质世界的存在。

确立主体性使笛卡尔成为近代哲学的创始人,然而也引出了二元论的难题。 笛卡尔的二元论给近代哲学打上了深深的烙印。

大陆唯理论

唯理论要从人的心灵中,而不是从对外部事物的感觉经验中去推论整个世界。

巴鲁赫•德•斯宾诺莎 (1632-1677) 西分近代哲学史上重要的理性主义者与笛卡尔和莱布尼茨齐名

一般的哲学是从被创造物开始,笛卡尔是从心灵开始,我则是从神(神圣必然性)开始———斯宾诺莎

事物被我们认为真实的,不外两个方式:或者是就事物存在于一定的时间及地点的关系中加以认识,或者是就事物被包括在神内,从神圣的自然之必然性去加以认识————斯宾诺莎

Rust

闭包

闭包是一种匿名函数,它可以赋值给变量也可以作为参数传递给其它函数,不同于函数的是,它允许捕获调用者作用域中的值.

当闭包从环境中捕获一个值时,会分配内存去存储这些值。对于有些场景来说,这种额外的内存分配会成为一种负担。与之相比,函数就不会去捕获这些环境值,因此定义和使用函数不会拥有这种内存负担。

闭包的类型推导

闭包享受编译器的类型推导能力,无需标注参数和返回值的类型。但是它不是泛型,当编译器推导出一种类型后,它就会一直使用该类型

fn main() {
let example_closure = |x| x;
let s = example_closure(String::from("hello"));
let n = example_closure(5);

在 s 中,编译器为 x 推导出类型 String,但是紧接着 n 试图用 5 这个整型去调用闭包,跟编译器之前推导的 String 类型不符

三种 Fn 特征

  • FnOnce,该类型的闭包会拿走被捕获变量的所有权。Once 顾名思义,说明该闭包只能运行一次 强制闭包取得捕获变量的所有权,可以在参数列表前添加 move 关键字,这种用法通常用于闭包的生命周期大于捕获变量的生命周期时,例如将闭包返回或移入其他线程。
    #![allow(unused)]
    fn main() {
      use std::thread;
      let v = vec![1, 2, 3];
      let handle = thread::spawn(move || {
          println!("Here's a vector: {:?}", v);
      });
      handle.join().unwrap();
    }
  • FnMut,它以可变借用的方式捕获了环境中的值,因此可以修改该值
  • Fn 特征,它以不可变借用的方式捕获环境中的值

一个闭包实现了哪种 Fn 特征取决于该闭包如何使用被捕获的变量,而不是取决于闭包如何捕获它们。move 本身强调的就是后者,闭包如何捕获变量

三种 Fn 的关系

  • 所有的闭包都自动实现了 FnOnce 特征,因此任何一个闭包都至少可以被调用一次
  • 没有移出所捕获变量的所有权的闭包自动实现了 FnMut 特征
  • 不需要对捕获变量进行改变的闭包自动实现了 Fn 特征

规则

生命周期省略规则

函数或方法的参数的生命周期被称为 输入生命周期(input lifetimes),而返回值的生命周期被称为 输出生命周期(output lifetimes)。

编译器采用三条规则来判断引用何时不需要明确的注解。第一条规则适用于输入生命周期,后两条规则适用于输出生命周期。如果编译器检查完这三条规则后仍然存在没有计算出生命周期的引用,编译器将会停止并生成错误。这些规则适用于 fn 定义,以及 impl 块。

  1. 每一个是引用的参数都有它自己的生命周期参数。换句话说就是,有一个引用参数的函数有一个生命周期参数:fn foo<'a>(x: &'a i32),有两个引用参数的函数有两个不同的生命周期参数,fn foo<'a, 'b>(x: &'a i32, y: &'b i32).
  2. 如果只有一个输入生命周期参数,那么它被赋予所有输出生命周期参数:fn foo<'a>(x: &'a i32) -> &'a i32。
  3. 如果方法有多个输入生命周期参数并且其中一个参数是 &self 或 &mut self,说明是个对象的方法(method),那么所有输出生命周期参数被赋予 self 的生命周期。

排除省略(elision)的情况,带上生命周期的函数签名有一些限制:

  • 任何引用都必须拥有标注好的生命周期。
  • 任何被返回的引用都必须有和某个输入量相同的生命周期或是静态类型(static)

闭包捕获参数

闭包可以通过三种方式捕获其环境,他们直接对应函数的三种获取参数的方式:获取所有权,可变借用和不可变借用。这三种捕获值的方式被编码为如下三个 Fn trait。其受限制程度按以下顺序递减:

  1. Fn:表示捕获方式为通过引用(&T)的闭包
  2. FnMut:表示捕获方式为通过可变引用(&mut T)的闭包
  3. FnOnce:表示捕获方式为通过值(T)的闭包

顺序之所以是这样,是因为 &T 只是获取了不可变的引用,&mut T 则可以改变变量,T 则是拿到了变量的所有权而非借用。对闭包所要捕获的每个变量,在满足使用需求的前提下尽量以限制最多的方式捕获。

例如用一个类型说明为 FnOnce 的闭包作为参数。这说明闭包可能采取 &T,&mut T 或 T 中的一种捕获方式,但编译器最终是根据所捕获变量在闭包里的使用情况决定捕获 方式。

这是因为如果能以移动的方式捕获变量,则闭包也有能力使用其他方式借用变量。注意 反过来就不再成立:如果参数的类型说明是 Fn,那么不允许该闭包通过 &mut T 或 T 捕获变量。

// 该函数将闭包作为参数并调用它。
fn apply<F>(f: F) where
  // 闭包没有输入值和返回值。
  F: FnOnce() {
  // ^ 试一试:将 `FnOnce` 换成 `Fn` 或 `FnMut`。

  f();
}

// 输入闭包,返回一个 `i32` 整型的函数。
fn apply_to_3<F>(f: F) -> i32 where
  // 闭包处理一个 `i32` 整型并返回一个 `i32` 整型。
  F: Fn(i32) -> i32 {

  f(3)
}

fn main() {
  use std::mem;

  let greeting = "hello";
  // 不可复制的类型。
  // `to_owned` 从借用的数据创建有所有权的数据。
  let mut farewell = "goodbye".to_owned();

  // 捕获 2 个变量:通过引用捕获 `greeting`,通过值捕获 `farewell`。
  let diary = || {
    // `greeting` 通过引用捕获,故需要闭包是 `Fn`。
    println!("I said {}.", greeting);

    // 下文改变了 `farewell` ,因而要求闭包通过可变引用来捕获它。
    // 现在需要 `FnMut`。
    farewell.push_str("!!!");
    println!("Then I screamed {}.", farewell);
    println!("Now I can sleep. zzzzz");

    // 手动调用 drop 又要求闭包通过值获取 `farewell`。
    // 现在需要 `FnOnce`。
    mem::drop(farewell);
  };

  // 以闭包作为参数,调用函数 `apply`。
  apply(diary);

  // 闭包 `double` 满足 `apply_to_3` 的 trait 约束。
  let double = |x| 2 * x;

  println!("3 doubled: {}", apply_to_3(double));
}

newtype

何为 newtype?简单来说,就是使用元组结构体的方式将已有的类型包裹起来:struct Meters(u32);,那么此处 Meters 就是一个 newtype

!永不返回类型

! 用来说明一个函数永不返回任何值 panic 的返回值是 !

Sized 和不定长类型 DST(dynamically sized types)

从编译器何时能获知类型大小的角度出发,可以分成两类:

  • 定长类型( sized ),这些类型的大小在编译时是已知的
  • 不定长类型( unsized ),与定长类型相反,它的大小只有到了程序运行时才能动态获知,这种类型又被称之为 DST

动态大小类型 DST

集合虽然底层数据可动态变化,感觉像是动态大小的类型。但是实际上,这些底层数据只是保存在堆上,在栈中还存有一个引用类型,该引用包含了集合的内存地址、元素数目、分配空间信息,通过这些信息,编译器对于该集合的实际大小了若指掌,最最重要的是:栈上的引用类型是固定大小的,因此它们依然是固定大小的类型。

正因为编译器无法在编译期获知类型大小,若你试图在代码中直接使用 DST 类型,将无法通过编译。

Rust 中常见的 DST 类型有: s[T]dyn Trait,它们都无法单独被使用,必须要通过引用或者 Box 来间接使用 。

Sized 特征

使用泛型时,Rust 如何保证我们的泛型参数是固定大小的类型呢?

#![allow(unused)]
fn main() {
fn generic<T>(t: T) {
    // --snip--
}
}

奥秘在于编译器自动帮我们加上了 Sized 特征约束:

#![allow(unused)]
fn main() {
fn generic<T: Sized>(t: T) {
    // --snip--
}
}

所有在编译时就能知道其大小的类型,都会自动实现 Sized 特征.

假如想在泛型函数中使用动态数据类型怎么办?可以使用 ?Sized 特征

#![allow(unused)]
fn main() {
fn generic<T: ?Sized>(t: &T) {
    // --snip--
}
}

?Sized 特征用于表明类型 T 既有可能是固定大小的类型,也可能是动态大小的类型。还有一点要注意的是,函数参数类型从 T 变成了 &T,因为 T 可能是动态大小的,因此需要用一个固定大小的指针(引用)来包裹它。

每一个特征都是一个可以通过名称来引用的动态大小类型。因此如果想把特征作为具体的类型来传递给函数,你必须将其转换成一个特征对象:诸如 &dyn Trait 或者 Box<dyn Trait> (还有 Rc<dyn Trait>)这些引用类型。

format 格式化参数

位置、命名参数

#![allow(unused)]
fn main() {
format!("{1} {} {0} {}", 1, 2); // => "2 1 1 2"
format!("{a} {c} {b}", a="a", b='b', c=3);  // => "a 3 b"
}

宽度

字符填充默认左边对其,填充在右边

#![allow(unused)]
fn main() {
// All of these print "Hello x    !"
format!("Hello {:5}!", "x");
format!("Hello {:1$}!", "x", 5); // 其中的$符号表示width是前面的位置参数
format!("Hello {1:0$}!", 5, "x");
format!("Hello {:width$}!", "x", width = 5);
}

数字填充默认右边对其,填充在左边

#![allow(unused)]
fn main() {
format!("Hello {:5}!", 5); // Hello     5!
format!("Hello {:05}!", 5); // Hello 00005!
format!("Hello {:+}!", 5); // Hello +5
format!("Hello {:05}!", -5); // 负号也要占用一位宽度 => Hello -0005!
}

填充与对其方式

#![allow(unused)]
fn main() {
format!("Hello {:<5}!", "x"); // "Hello x    !"
format!("Hello {:-<5}!", "x");// "Hello x----!"
format!("Hello {:^5}!", "x"); // "Hello   x  !"
format!("Hello {:>5}!", "x"); //  "Hello     x!
}

标志位 #

#![allow(unused)]
fn main() {
format!("Hello {:+}!", 5); // "Hello +5!"
format!("{:#x}!", 27); // "0x1b!"
format!("{:x}!", 27); // "1b!"
format!("{:X}!", 27); // "1B!"
format!("Hello {:05}!", 5); // "Hello 00005!"  这的0表示padding的字符,只有0是这样
format!("Hello {:15}!", 5); // "Hello              5!" 这里的15就是width
format!("Hello {:05}!", -5); // "Hello -0005!"
format!("{:#010x}!", 27); // "0x0000001b!" 0 是填充字符,10是width参数
}

捕获环境变量 有局限,它只能捕获普通的变量,对于更复杂的类型(例如表达式),可以先将它赋值给一个变量

fn get_person() -> String {
    String::from("sunface")
}
fn main() {
    let person = get_person();
    println!("Hello, {person}!");
}
  • # - This flag indicates that the “alternate” form of printing should be used. The alternate forms are:

    • #? - pretty-print the Debug formatting (adds linebreaks and indentation)
    • #x - precedes the argument with a 0x
    • #X - precedes the argument with a 0x
    • #b - precedes the argument with a 0b
    • #o - precedes the argument with a 0o
  • 0 - This is used to indicate for integer formats that the padding to width should both be done with a 0 character as well as be sign-aware. A format like {:08} would yield 00000001 for the integer 1, while the same format would yield -0000001 for the integer -1. Notice that the negative version has one fewer zero than the positive version. Note that padding zeros are always placed after the sign (if any) and before the digits. When used together with the # flag, a similar rule applies: padding zeros are inserted after the prefix but before the digits. The prefix is included in the total width.

精度

  1. An integer .N:

    the integer N itself is the precision.

  2. An integer or name followed by dollar sign .N$:

    use format argument N (which must be a usize) as the precision.

  3. An asterisk .*:

    .* means that this {...} is associated with two format inputs rather than one: the first input holds the usize precision, and the second holds the value to print. Note that in this case, if one uses the format string {<arg>:<spec>.*}, then the <arg> part refers to the value to print, and the precision must come in the input preceding <arg>.

#![allow(unused)]
fn main() {
// all of these print Hello x is 0.01000
// Hello {arg 0 ("x")} is {arg 1 (0.01) with precision specified inline (5)}
format!("Hello {0} is {1:.5}", "x", 0.01);

// Hello {arg 1 ("x")} is {arg 2 (0.01) with precision specified in arg 0 (5)}
format!("Hello {1} is {2:.0$}", 5, "x", 0.01);

// Hello {arg 0 ("x")} is {arg 2 (0.01) with precision specified in arg 1 (5)}
format!("Hello {0} is {2:.1$}", "x", 5, 0.01);

// Hello {next arg ("x")} is {second of next two args (0.01) with precision
//                          specified in first of next two args (5)}
format!("Hello {} is {:.*}",    "x", 5, 0.01);

// Hello {next arg ("x")} is {arg 2 (0.01) with precision
//                          specified in its predecessor (5)}
format!("Hello {} is {2:.*}",   "x", 5, 0.01);

// Hello {next arg ("x")} is {arg "number" (0.01) with precision specified
//                          in arg "prec" (5)}
format!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01);
}

如果在使用精度格式化的时候,被格式化的值不是数字,是字符串数字,则会按照字符串长度截取

#![allow(unused)]
fn main() {
// print Hello, `123` has 3 characters
format!("{}, `{name:.*}` has 3 characters", "Hello", 3, name="1234.56");
}

其他一些formatting trait

iterator

  • into_iter 会夺走所有权
  • iter 是借用
  • iter_mut 是可变借用

into_ 之类的,都是拿走所有权,_mut 之类的都是可变借用,剩下的就是不可变借用。

迭代器的 next 方法返回的是 Option 类型, next 方法对迭代器的遍历是消耗性的,每次消耗它一个元素,最终迭代器中将没有任何元素,只能返回 None

Iterator 和 IntoIterator 的区别

这两个其实还蛮容易搞混的,但我们只需要记住,Iterator 就是迭代器特征,只有实现了它才能称为迭代器,才能调用 next。

而 IntoIterator 强调的是某一个类型如果实现了该特征,它可以通过 into_iter,iter 等方法变成一个迭代器。

消费者适配器

只要迭代器上的某个方法 A 在其内部调用了 next 方法,那么 A 就被称为消费性适配器:因为 next 方法会消耗掉迭代器上的元素,所以方法 A 的调用也会消耗掉迭代器上的元素。

迭代器适配器

那么迭代器适配器,顾名思义,会返回一个新的迭代器,这是实现链式方法调用的关键:v.iter().map().filter()...。 与消费者适配器不同,迭代器适配器是惰性的,意味着你需要一个消费者适配器来收尾,最终将迭代器转换成一个具体的值:

生命周期

#![allow(unused)]
fn main() {
  &i32        // 一个引用
  &'a i32     // 具有显式生命周期的引用
  &'a mut i32 // 具有显式生命周期的可变引用
}

生命周期语法用来将函数的多个引用参数和返回值的作用域关联到一起,一旦关联到一起后,Rust 就拥有充分的信息来确保我们的操作是内存安全的。

生命周期省略规则

三条消除规则 编译器使用三条消除规则来确定哪些场景不需要显式地去标注生命周期。其中第一条规则应用在输入生命周期上,第二、三条应用在输出生命周期上。若编译器发现三条规则都不适用时,就会报错,提示你需要手动标注生命周期。

  • 每一个引用参数都会获得独自的生命周期

    例如一个引用参数的函数就有一个生命周期标注: fn foo<'a>(x: &'a i32),两个引用参数的有两个生命周期标注:fn foo<'a, 'b>(x: &'a i32, y: &'b i32), 依此类推。

  • 若只有一个输入生命周期(函数参数中只有一个引用类型),那么该生命周期会被赋给所有的输出生命周期,也就是所有返回值的生命周期都等于该输入生命周期

    例如函数 fn foo(x: &i32) -> &i32,x 参数的生命周期会被自动赋给返回值 &i32,因此该函数等同于 fn foo<'a>(x: &'a i32) -> &'a i32

  • 若存在多个输入生命周期,且其中一个是 &self 或 &mut self,则 &self 的生命周期被赋给所有的输出生命周期

    拥有 &self 形式的参数,说明该函数是一个 方法,该规则让方法的使用便利度大幅提升。

生命周期约束语法

  • 'a: 'b,是生命周期约束语法,跟泛型约束非常相似,用于说明 'a 必须比 'b 活得久
  • 可以把 'a 和 'b 都在同一个地方声明(如上),或者分开声明但通过 where 'a: 'b 约束生命周期关系。
impl<'a: 'b, 'b> ImportantExcerpt<'a> {
    fn announce_and_return_part(&'a self, announcement: &'b str) -> &'b str {
        println!("Attention please: {}", announcement);
        self.part
    }
}

impl<'a> ImportantExcerpt<'a> {
    fn announce_and_return_part<'b>(&'a self, announcement: &'b str) -> &'b str
    where
        'a: 'b,
    {
        println!("Attention please: {}", announcement);
        self.part
    }
}
  • T: 'a 表示类型 T 必须比 'a 活得要久
    #![allow(unused)]
    fn main() {
    // Rust 2015
    struct Ref<'a, T: 'a> {
        field: &'a T
    }
    
    // Rust 2018
    struct Ref<'a, T> {
        field: &'a T
    }
    }

&‘static

&'static 对于生命周期有着非常强的要求:一个引用必须要活得跟剩下的程序一样久,才能被标注为 &'static

&'static 生命周期针对的仅仅是引用,而不是持有该引用的变量,对于变量来说,还是要遵循相应的作用域规则. 变量销毁后,还是可以通过引用的地址获取到引用指向的数据的。

T: 'static

T: 'static&'static 有相同的约束:T 必须活得和程序一样久。

static 到底针对谁? 大家有没有想过,到底是 &'static 这个引用还是该引用指向的数据活得跟程序一样久呢? 答案是引用指向的数据,而引用本身是要遵循其作用域范围的.

Reborrow 再借用

#[derive(Debug)]
struct Point {
    x: i32,
    y: i32,
}

impl Point {
    fn move_to(&mut self, x: i32, y: i32) {
        self.x = x;
        self.y = y;
    }
}

fn main() {
    let mut p = Point { x: 0, y: 0 };
    let r = &mut p;
    // reborrow! 此时对`r`的再借用不会导致跟上面的借用冲突
    let rr: &Point = &*r;

    // 再借用`rr`最后一次使用发生在这里,在它的生命周期中,我们并没有使用原来的借用`r`,因此不会报错
    println!("{:?}", rr);

    // 再借用结束后,才去使用原来的借用`r`
    r.move_to(10, 10);
    println!("{:?}", r);
}

在 Rust 中,所有的类型可以分为两类:

类型的值可以在内存中安全地被移动,例如数值、字符串、布尔值、结构体、枚举,总之你能想到的几乎所有类型都可以落入到此范畴内 自引用类型

Pin

Pin它可以防止一个类型在内存中被移动. Pin 不按套路出牌,它是一个结构体

#![allow(unused)]
fn main() {
pub struct Pin<P> {
    pointer: P,
}
}

Unpin

事实上,绝大多数类型都不在意是否被移动(开篇提到的第一种类型),因此它们都自动实现了 Unpin 特征

Unpin 是一个特征,它表明一个类型可以随意被移动,那么问题来了,可以被 Pin 住的值,它有没有实现什么特征呢? 答案很出乎意料,可以被 Pin 住的值实现的特征是 !Unpin ,大家可能之前没有见过,但是它其实很简单,! 代表没有实现某个特征的意思,!Unpin 说明类型没有实现 Unpin 特征,那自然就可以被 Pin 了。

那是不是意味着类型如果实现了 Unpin 特征,就不能被 Pin 了?其实,还是可以 Pin 的,毕竟它只是一个结构体,你可以随意使用,但是不再有任何效果而已,该值一样可以被移动!

相信大家看到这里,脑袋里已经快被 Pin 、 Unpin 、 !Unpin 整爆炸了,没事,我们再来火上浇油下:)

  • 若 T: Unpin ( Rust 类型的默认实现),那么 Pin<'a, T> 跟 &'a mut T 完全相同,也就是 Pin 将没有任何效果, 该移动还是照常移动
  • 绝大多数标准库类型都实现了 Unpin ,事实上,对于 Rust 中你能遇到的绝大多数类型,该结论依然成立 ,其中一个例外就是:async/await 生成的 Future 没有实现 Unpin
  • 你可以通过以下方法为自己的类型添加 !Unpin 约束:
    • 使用文中提到的 std::marker::PhantomPinned
    • 使用nightly 版本下的 feature flag
  • 可以将值固定到栈上,也可以固定到堆上
    • 将 !Unpin 值固定到栈上需要使用 unsafe
    • 将 !Unpin 值固定到堆上无需 unsafe ,可以通过 Box::pin 来简单的实现
  • 当固定类型T: !Unpin时,你需要保证数据从被固定到被 drop 这段时期内,其内存不会变得非法或者被重用

ref 和 &

& 操作符号

&操作符用于变量名前,表示创建此变量的引用,用于类型名前,表示此类型的借用类型。

#![allow(unused)]
fn main() {
let x = vec![1, 2, 3]; // vec不具备复制特性。赋值时不会自动复制。
let y = &x; // &x创建对x的引用,再绑定到y,y的类型是&Vec<i32>。
let z: &Vec<i32> = &x; //等同上一行

fn some_fun(arg: &T) {} // &T是一个类型,表示arg是对T类型的引用。
}

当&出现在=左侧时,可以用于模式匹配,但通常这种写法都是错的,仅在具备复制特性的类型时才能通过编译。

具备复制特性的类型

#![allow(unused)]
fn main() {
// 具备复制特性的类型,如i32
let x = 100;
let &y = &x; // &x创建对x的引用(&i32类型),再通过模式匹配,与y进行绑定。
// 用&y匹配&i32类型,同时将=右侧解构,得到&i32类型,相当于将右侧的i32复制到左侧的i32。
// 因为i32可以复制,所以可以成功绑定。
}

不具备复制特性的类型

#![allow(unused)]
fn main() {
// 不具备复制特性的类型,如Vec<i32>
let x = vec![1, 2, 3];
let &y = &x; // 出错,&x创建对x的引用(&Vec<i32>类型),再通过模式匹配,与y进行绑定。
// 绑定时&y匹配&Vec<i32>类型,所以y就是Vec<i32>类型,=右侧也对&x的类型进行解构,也得到&Vec<i32>,
// 于是这上绑定就相当于将右侧的Vec<i32>赋给左侧的Vec<i32>,
// 因为Vec<i32>不能复制,所以这里是移动语义,相当于把x移动到y。
// 但因为&x本身创建了对x的引用(临时的引用),不能移动x。出错信息:
// error[E0507]: cannot move out of a shared reference
//   --> src/bin/test1.rs:11:14
//    |
// 11 |     let &u = &x;
//    |         --   ^^
//    |         ||
//    |         |data moved here
//    |         |move occurs because `u` has type `Vec<i32>`, which does not implement the `Copy` trait
//    |         help: consider removing the `&`: `u`
}

上述出错的代码相当于:

#![allow(unused)]
fn main() {
let x = vec![1, 2, 3];
let y = &x;
let &z = y; // 对y进行解构,得到&Vec<i32>,于是尝试将y所指向的x移动到z,但因为y的存在不能成功。
}

ref 关键字

某些情况下,使用ref与&是等效的,但ref关键字一般用于要绑定的标识符前,通常这些地方都无法使用&。

#![allow(unused)]
fn main() {
let x = vec![1, 2, 3];
let ref y = x; // ref表示以引用的方式绑定y和x,所以y的类型是&Vec<i32>。
let y = &x; // 与上一句等价。
}

ref用于match的分支匹配中

match在匹配时,会拿走被匹配变量,所以match之后,原变量无法再使用。

#![allow(unused)]
fn main() {
let a = Some(vec![1, 2, 3]);
match a {
  None => (),
  Some(value) => println!("{:?}", value), // value绑定是移动语义,所以a被match占据。
}
println!("{:?}", a); // 不能再使用a
}

要避免这种情况,可以使用ref

#![allow(unused)]
fn main() {
let a = Some(vec![1, 2, 3]);
match a {
  None => (),
  Some(ref value) => println!("{:?}", value), // value以引用方式绑定。
}
println!("{:?}", a); // a仍然在

// 也可以写成

let a = Some(vec![1, 2, 3]);
match &a { // 创建a的引用,match只使用了a引用,且match结束时,引用离开作用域也会销毁
  None => (),
  Some(value) => println!("{:?}", value), // 编译器会识别出,value也是引用。
}
println!("{:?}", a); // 可以继续使用a,如果a可变,也可以修改a
}

ref用于解构时引用结构体某些字段

不考虑复制特性,结构体进行匹配时,默认将使用移动语义,结构体字段所有权从结构体移动到被绑定的变量上,原变量失去所有权.

#[derive(Debug)]
struct Person {
  name: String,
}

fn main() {
  let mut p = Person {
    name: "薛海舟".to_string(),
  };

  let Person { name: a } = p; // a是被绑定的标识符,这里将p中name的所有权转移给a变量。
  p.name.push_str("舒珊靖"); // 失败,因为p已经被移动。
  println!("{:?}", a); // a中内容是"薛海舟"
}

使用ref就表示,要以引用的形式来绑定

#[derive(Debug)]
struct Person {
  name: String,
}

// ref只能用于要被绑定的标识符前
fn main() {
  let mut p = Person {
    name: "薛海舟".to_string(),
  };

  let Person { name: ref mut a } = p; // a是是对p中name字段的可变借用
  *a = "this one".to_string(); // 对a赋值,就相当于对p中name操作
  println!("舒珊靖", p); // p中name变为舒珊靖
}

?

? 可以用于Result 和 Option的传播

mod

在 Rust 中,父模块完全无法访问子模块中的私有项,但是子模块却可以访问父模块、父父..模块的私有项。

'static

使用 Box::leak 也可以产生 'static 生命周期

切片和切片引用

Rust 语言特性内置的 str 和 [u8] 类型都是切片,前者是字符串切片,后者是数组切片 在 Rust 中,所有的切片都是动态大小类型,它们都无法直接被使用

堆与栈

Rust 堆上对象还有一个特殊之处,它们都拥有一个所有者,因此受所有权规则的限制:当赋值时,发生的是所有权的转移(只需浅拷贝栈上的引用或智能指针即可),底层数据并不会被拷贝,转移所有权仅仅是复制一份栈中的指针,再将新的指针赋予新的变量,然后让拥有旧指针的变量失效,最终完成了所有权的转移

当栈上数据转移所有权时,实际上是把数据拷贝了一份,最终新旧变量各自拥有不同的数据,因此所有权并未转移。

在 Rust 中,想实现不同类型组成的数组只有两个办法:枚举和特征对象,前者限制较多,因此后者往往是最常用的解决办法。

b"string"

#![allow(unused)]
fn main() {
let a = b"string";
}

这种写法可以将一个 &str 字符串转变成一个字节数组:&[u8;10]

trait 与 trait对象

特征定义与实现的位置(孤儿规则) 如果你想要为类型 A 实现特征 T,那么 A 或者 T 至少有一个是在当前作用域中定义的!

特征对象指向实现了 Draw 特征的类型的实例,可以通过 &引用或者 Box<T> 智能指针的方式来创建特征对象。

实例

trait Draw {
    fn draw(&self) -> String;
}

impl Draw for u8 {
    fn draw(&self) -> String {
        format!("u8: {}", *self)
    }
}

impl Draw for f64 {
    fn draw(&self) -> String {
        format!("f64: {}", *self)
    }
}

// 若 T 实现了 Draw 特征, 则调用该函数时传入的 Box<T> 可以被隐式转换成函数参数签名中的 Box<dyn Draw>
fn draw1(x: Box<dyn Draw>) {
    // 由于实现了 Deref 特征,Box 智能指针会自动解引用为它所包裹的值,然后调用该值对应的类型上定义的 `draw` 方法
    x.draw();
}

fn draw2(x: &dyn Draw) {
    x.draw();
}

fn main() {
    let x = 1.1f64;
    // do_something(&x);
    let y = 8u8;

    // x 和 y 的类型 T 都实现了 `Draw` 特征,因为 Box<T> 可以在函数调用时隐式地被转换为特征对象 Box<dyn Draw> 
    // 基于 x 的值创建一个 Box<f64> 类型的智能指针,指针指向的数据被放置在了堆上
    draw1(Box::new(x));
    // 基于 y 的值创建一个 Box<u8> 类型的智能指针
    draw1(Box::new(y));
    draw2(&x);
    draw2(&y);
}

上面代码,有几个非常重要的点:

  • draw1 函数的参数是 Box 形式的特征对象,该特征对象是通过 Box::new(x) 的方式创建的
  • draw2 函数的参数是 &dyn Draw 形式的特征对象,该特征对象是通过 &x 的方式创建的
  • dyn 关键字只用在特征对象的类型声明上,在创建时无需使用 dyn

注意 dyn 不能单独作为特征对象的定义

#![allow(unused)]
fn main() {
fn draw2(x: dyn Draw) {
    x.draw();
}
}

原因是特征对象可以是任意实现了某个特征的类型,编译器在编译期不知道该类型的大小,不同的类型大小是不同的。而 &dynBox<dyn> 在编译期都是已知大小,所以可以用作特征对象的定义。

特征对象的动态分发

  • 特征对象大小不固定:这是因为,实现这个特征的具体类型不固定管,因此特征没有固定大小。
  • 几乎总是使用特征对象的引用方式,如 &dyn DrawBox<dyn Draw>
    • 虽然特征对象没有固定大小,但它的引用类型的大小是固定的,它由两个指针组成(ptr 和 vptr),因此占用两个指针大小
    • 一个指针 ptr 指向实现了特征的具体类型的实例
    • 另一个指针 vptr 指向一个虚表 vtable,vtable 中保存了类型实例对于可以调用的实现于特征的方法。当调用方法时,直接从 vtable 中找到方法并调用。之所以要使用一个 vtable 来保存各实例的方法,是因为实现了特征的类型有多种,这些类型拥有的方法各不相同,当将这些类型的实例都当作特征来使用时(此时,它们全都看作是特征类型的实例, 而不再是具体类型的实例),有必要区分这些实例各自有哪些方法可调用

特征对象的限制

不是所有特征都能拥有特征对象,只有对象安全的特征才行。当一个特征的所有方法都有如下属性时,它的对象才是安全的:

  • 方法的返回类型不能是 Self
  • 方法没有任何泛型参数

对象安全对于特征对象是必须的,因为一旦有了特征对象,就不再需要知道实现该特征的具体类型是什么了。如果特征方法返回了具体的 Self 类型,但是特征对象忘记了其真正的类型,那这个 Self 就非常尴尬,因为没人知道它是谁了。但是对于泛型类型参数来说,当使用特征时其会放入具体的类型参数:此具体类型变成了实现该特征的类型的一部分。而当使用特征对象时其具体类型被抹去了,故而无从得知放入泛型参数类型到底是什么

完全限定语法

#![allow(unused)]
fn main() {
<Type as Trait>::function(receiver_if_method, next_arg, ...);
}

特征定义中的特征约束

#![allow(unused)]
fn main() {
use std::fmt::Display;

trait OutlinePrint: Display {
    fn outline_print(&self) {
        let output = self.to_string();
        let len = output.len();
        println!("{}", "*".repeat(len + 4));
        println!("*{}*", " ".repeat(len + 2));
        println!("* {} *", output);
        println!("*{}*", " ".repeat(len + 2));
        println!("{}", "*".repeat(len + 4));
    }
}
}

如果你想要实现 OutlinePrint 特征,首先你需要实现 Display 特征。

在外部类型上实现外部特征(newtype)

绕过孤儿规则,使用newtype 模式,简而言之:就是为一个元组结构体创建新类型。该元组结构体封装有一个字段,该字段就是希望实现特征的具体类型。

use std::fmt;

struct Wrapper(Vec<String>);

impl fmt::Display for Wrapper {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "[{}]", self.0.join(", "))
    }
}

fn main() {
    let w = Wrapper(vec![String::from("hello"), String::from("world")]);
    println!("w = {}", w);
}

数据类型

分类

标量(scalar)和复合(compound)// 原生类型

Rust 有四种基本的标量类型:整型、浮点型、布尔类型和字符类型。都存储在栈中,并且当离开作用域时被移出

标量

  • 整型(默认i32)

    长度有符号无符号
    8-biti8u8
    16-biti16u16
    32-biti32u32
    64-biti64u64
    128-biti128u128
    archisize(指针宽度)usize(指针宽度)
  • 浮点(默认为f64): f32, f64

  • char: 单个Unicode字符, ‘a' (4字节)

  • bool: true, false

  • 单元类型(unit type): 其唯一可能的值就是 () 这个空元组, 尽管单元类型的值是个元组,它却并不被认为是复合类型,因为并不包含多个值。

数字还可以通过后缀 (suffix)或默认方式来声明类型: 8i32, 10u32

复合

  • 数组(array):如 [1, 2, 3],
    • 数组中的每个元素的类型必须相同,长度固定,内存中是连续存储的:一旦声明,其长度不会增大或缩小。并且在编译的时候是确定了的。
      • 内存中是连续存储的
  • 元组(tuple):如 (1, true),元组长度固定:一旦声明,其长度不会增大或缩小。

字面量和运算符

字面量

  • 整数 1、浮点数 1.2、字符 'a'、字符串 "abc"、布尔值 true 和单元类型 (); 前缀 0x、0o、0b,数字可以用十六进制、八进制或二进制记法表示.

  • 可读性,可以在数值字面量中插入下划线,比如:1_000 等同于 1000, 0.000_001 等同于 0.000001。

  • 字符串字面值来说,我们在编译时就知道其内容,所以文本被直接硬编码进最终的可执行文件中,它是一个指向二进制程序特定位置的 slice。这也就是为什么字符串字面值是不可变的

    运算符

    fn main() {
    // 整数相加
    println!("1 + 2 = {}", 1u32 + 2);

    // 整数相减
    println!("1 - 2 = {}", 1i32 - 2);
    // 试一试 ^ 尝试将 `1i32` 改为 `1u32`,体会为什么类型声明这么重要

    // 短路求值的布尔逻辑
    println!("true AND false is {}", true && false);
    println!("true OR false is {}", true || false);
    println!("NOT true is {}", !true);

    // 位运算
    println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);
    println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);
    println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);
    println!("1 << 5 is {}", 1u32 << 5);
    println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);

    // 使用下划线改善数字的可读性!
    println!("One million is written as {}", 1_000_000u32);
}

元组

    // 元组可以充当函数的参数和返回值
fn reverse(pair: (i32, bool)) -> (bool, i32) {
    // 可以使用 `let` 把一个元组的成员绑定到一些变量
    let (integer, boolean) = pair;

    (boolean, integer)
}

// 在 “动手试一试” 的练习中要用到下面这个结构体。
#[derive(Debug)]
struct Matrix(f32, f32, f32, f32);

fn main() {
    // 包含各种不同类型的元组
    let long_tuple = (1u8, 2u16, 3u32, 4u64,
                      -1i8, -2i16, -3i32, -4i64,
                      0.1f32, 0.2f64,
                      'a', true);

    // 通过元组的下标来访问具体的值
    println!("long tuple first value: {}", long_tuple.0);
    println!("long tuple second value: {}", long_tuple.1);

    // 元组也可以充当元组的元素
    let tuple_of_tuples = ((1u8, 2u16, 2u32), (4u64, -1i8), -2i16);

    // 元组可以打印
    println!("tuple of tuples: {:?}", tuple_of_tuples);

    // 但很长的元组无法打印
    // let too_long_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
    // println!("too long tuple: {:?}", too_long_tuple);
    // 试一试 ^ 取消上面两行的注释,阅读编译器给出的错误信息。

    let pair = (1, true);
    println!("pair is {:?}", pair);

    println!("the reversed pair is {:?}", reverse(pair));

    // 创建单元素元组需要一个额外的逗号,这是为了和被括号包含的字面量作区分。
    println!("one element tuple: {:?}", (5u32,));
    println!("just an integer: {:?}", (5u32));

    // 元组可以被解构(deconstruct),从而将值绑定给变量
    let tuple = (1, "hello", 4.5, true);

    let (a, b, c, d) = tuple;
    println!("{:?}, {:?}, {:?}, {:?}", a, b, c, d);

    let matrix = Matrix(1.1, 1.2, 2.1, 2.2);
    println!("{:?}", matrix)

}

数组和切片

切片(slice)

  • 大小在编译时是不确定的
  • 切片是一个双字 对象(two-word object),第一个字是一个指向数据的指针,第二个字是切片的长度.这 个 “字” 的宽度和 usize 相同,由处理器架构决定,比如在 x86-64 平台上就是 64 位。 slice 可以用来借用数组的一部分
  • slice 的类型标记为 &[T]
  • 没有所有权的数据类型, slice允许你引用集合中一段连续的元素序列,而不用引用整个集合.

多线程

多线程风险

  • 竞态条件(race conditions),多个线程以非一致性的顺序同时访问数据资源
  • 死锁(deadlocks),两个线程都想使用某个资源,但是又都在等待对方释放资源后才能使用,结果最终都无法继续执行
  • 一些因为多线程导致的很隐晦的 BUG,难以复现和解决

消息同步

互斥锁 Mutex (mutual exclusion 的缩写)

Mutex让多个线程并发的访问同一个值变成了排队访问:同一时间,只允许一个线程A访问该值,其它线程需要等待A访问完成后才能继续 Mutex具有内部可变性

use std::sync::Mutex;

fn main() {
  // 使用`Mutex`结构体的关联函数创建新的互斥锁实例
  let m = Mutex::new(5);

  {
    // 获取锁,然后deref为`m`的引用
    // lock返回的是Result
    let mut num = m.lock().unwrap();
    *num = 6;
    // 锁自动被drop
  }

  println!("m = {:?}", m);
}

Rc/RefCell用于单线程内部可变性, Arc/Mutex用于多线程内部可变性。

读写锁 RwLock

简单总结下RwLock:

  • 同时允许多个读,但最多只能有一个写
  • 读和写不能同时存在
  • 读可以使用read、try_read,写write、try_write, 在实际项目中,try_xxx会安全的多

Mutex 还是 RwLock

首先简单性上Mutex完胜,因为使用RwLock你得操心几个问题:

  • 读和写不能同时发生,如果使用try_xxx解决,就必须做大量的错误处理和失败重试机制

  • 当读多写少时,写操作可能会因为一直无法获得锁导致连续多次失败(writer starvation)

  • RwLock 其实是操作系统提供的,实现原理要比Mutex复杂的多,因此单就锁的性能而言,比不上原生实现的Mutex 再来简单总结下两者的使用场景:

  • 追求高并发读取时,使用RwLock,因为Mutex一次只允许一个线程去读取

  • 如果要保证写操作的成功性,使用Mutex

  • 不知道哪个合适,统一使用Mutex

Atomic 原子类型

由于原子操作是通过指令提供的支持,因此它的性能相比锁和消息传递会好很多。相比较于锁而言,原子类型不需要开发者处理加锁和释放锁的问题,同时支持修改,读取等操作,还具备较高的并发性能,几乎所有的语言都支持原子类型。

可以看出原子类型是无锁类型,但是无锁不代表无需等待,因为原子类型内部使用了CAS循环,当大量的冲突发生时,该等待还是得等待!但是总归比锁要好。

Atomic的值具有内部可变性,你无需将其声明为mut

原子类型的一个常用场景,就是作为全局变量来使用:

use std::ops::Sub;
use std::sync::atomic::{AtomicU64, Ordering};
use std::thread::{self, JoinHandle};
use std::time::Instant;

const N_TIMES: u64 = 10000000;
const N_THREADS: usize = 10;

static R: AtomicU64 = AtomicU64::new(0);

fn add_n_times(n: u64) -> JoinHandle<()> {
  thread::spawn(move || {
    for _ in 0..n {
      R.fetch_add(1, Ordering::Relaxed);
    }
  })
}

fn main() {
  let s = Instant::now();
  let mut threads = Vec::with_capacity(N_THREADS);

  for _ in 0..N_THREADS {
    threads.push(add_n_times(N_TIMES));
  }

  for thread in threads {
    thread.join().unwrap();
  }

  assert_eq!(N_TIMES * N_THREADS as u64, R.load(Ordering::Relaxed));

  println!("{:?}",Instant::now().sub(s));
}

内存顺序

内存顺序是指 CPU 在访问内存时的顺序,该顺序可能受以下因素的影响:

  • 代码中的先后顺序
  • 编译器优化导致在编译阶段发生改变(内存重排序 reordering)
  • 运行阶段因 CPU 的缓存机制导致顺序被打乱

Atomic 能替代锁吗

那么原子类型既然这么全能,它可以替代锁吗?答案是不行:

  • 对于复杂的场景下,锁的使用简单粗暴,不容易有坑
  • std::sync::atomic包中仅提供了数值类型的原子操作:AtomicBool, AtomicIsize, AtomicUsize, AtomicI8, AtomicU16等,而锁可以应用于各种类型
  • 在有些情况下,必须使用锁来配合,例如上一章节中使用Mutex配合Condvar

Atomic 的应用场景

  • 事实上,Atomic虽然对于用户不太常用,但是对于高性能库的开发者、标准库开发者都非常常用,它是并发原语的基石,除此之外,还有一些场景适用:
  • 无锁(lock free)数据结构
  • 全局变量,例如全局自增 ID, 在后续章节会介绍
  • 跨线程计数器,例如可以用于统计指标

基于 Send 和 Sync 的线程安全

Rc 和 Arc 源码对比

#![allow(unused)]
fn main() {
// Rc源码片段
impl<T: ?Sized> !marker::Send for Rc<T> {}
impl<T: ?Sized> !marker::Sync for Rc<T> {}

// Arc源码片段
unsafe impl<T: ?Sized + Sync + Send> Send for Arc<T> {}
unsafe impl<T: ?Sized + Sync + Send> Sync for Arc<T> {}
}

!代表移除特征的相应实现,上面代码中Rc的Send和Sync特征被特地移除了实现,而Arc则相反,实现了Sync + Send,再结合之前的编译器报错,大概可以明白了:Send和Sync是在线程间安全使用一个值的关键。

Send 和 Sync

Send和Sync是 Rust 安全并发的重中之重,但是实际上它们只是标记特征(marker trait,该特征未定义任何行为,因此非常适合用于标记), 来看看它们的作用:

  • 实现Send的类型可以在线程间安全的传递其所有权
  • 实现Sync的类型可以在线程间安全的共享(通过引用) 这里还有一个潜在的依赖:一个类型要在线程间安全的共享的前提是,指向它的引用必须能在线程间传递。因为如果引用都不能被传递,我们就无法在多个线程间使用引用去访问同一个数据了。

由上可知,若类型 T 的引用&T是Send,则T是Sync。

没有例子的概念讲解都是耍流氓,来看看RwLock的实现:

#![allow(unused)]
fn main() {
unsafe impl<T: ?Sized + Send + Sync> Sync for RwLock<T> {}
}

首先RwLock可以在线程间安全的共享,那它肯定是实现了Sync,但是我们的关注点不在这里。众所周知,RwLock可以并发的读,说明其中的值T必定也可以在线程间共享,那T必定要实现Sync。

果不其然,上述代码中,T的特征约束中就有一个Sync特征,那问题又来了,Mutex是不是相反?再来看看:

#![allow(unused)]
fn main() {
unsafe impl<T: ?Sized + Send> Sync for Mutex<T> {}
}

不出所料,Mutex中的T并没有Sync特征约束。

实现Send和Sync的类型

在 Rust 中,几乎所有类型都默认实现了Send和Sync,而且由于这两个特征都是可自动派生的特征(通过derive派生),意味着一个复合类型(例如结构体), 只要它内部的所有成员都实现了Send或者Sync,那么它就自动实现了Send或Sync。

正是因为以上规则,Rust 中绝大多数类型都实现了Send和Sync,除了以下几个(事实上不止这几个,只不过它们比较常见):

  • 裸指针两者都没实现,因为它本身就没有任何安全保证
  • UnsafeCell不是Sync,因此Cell和RefCell也不是
  • Rc两者都没实现(因为内部的引用计数器不是线程安全的) 当然,如果是自定义的复合类型,那没实现那哥俩的就较为常见了:只要复合类型中有一个成员不是Send或Sync,那么该复合类型也就不是Send或Sync。

手动实现 Send 和 Sync 是不安全的,通常并不需要手动实现 Send 和 Sync trait,实现者需要使用unsafe小心维护并发安全保证。

所有权

所有权是对于存储在堆上的数据有效,包括定义在vector或者struct里面的元素.栈里面的数据默认实现了Copy trait,赋值时,会拷贝完整的数据。

数据类型

类型转换

原生类型

Rust 不提供原生类型之间的隐式类型转换(coercion),但可以使用 as 关键字进行显 式类型转换(casting)。 当把任何类型转换为无符号类型 T 时,会不断加上或减去 (std::T::MAX + 1),直到值位于新类型 T 的范围内。

// 不显示类型转换产生的溢出警告。
#![allow(overflowing_literals)]

fn main() {
  let decimal = 65.4321_f32;

  // 错误!不提供隐式转换
  // let integer: u8 = decimal;
  // 改正 ^ 注释掉这一行

  // 可以显式转换
  let integer = decimal as u8;
  let character = integer as char; // A的ASCII码为65

  println!("Casting: {} -> {} -> {}", decimal, integer, character);

  // 当把任何类型转换为无符号类型 T 时,会不断加上或减去 (std::T::MAX + 1)
  // 直到值位于新类型 T 的范围内。

  let single_char = 'A';
  let unicode = '😇';
  println!("single char is {}", single_char as u8);
  println!("single unicode is {}", unicode as u8);
  println!("128519 mod 256 {}", 128519 % 256);

  // 1000 已经在 u16 的范围内
  println!("1000 as a u16 is: {}", 1000 as u16);

  // 1000 - 256 - 256 - 256 = 232
  // 事实上的处理方式是:从最低有效位(LSB,least significant bits)开始保留
  // 8 位,然后剩余位置,直到最高有效位(MSB,most significant bit)都被抛弃。
  // 译注:MSB 就是二进制的最高位,LSB 就是二进制的最低位,按日常书写习惯就是
  // 最左边一位和最右边一位。
  println!("1000 as a u8 is : {}", 1000 as u8);
  // -1 + 256 = 255
  println!("  -1 as a u8 is : {}", (-1i8) as u8);

  // 对正数,这就和取模一样。
  println!("1000 mod 256 is : {}", 1000 % 256);

  // 当转换到有符号类型时,(位操作的)结果就和 “先转换到对应的无符号类型,
  // 如果 MSB 是 1,则该值为负” 是一样的。

  // 当然如果数值已经在目标类型的范围内,就直接把它放进去。
  println!(" 128 as a i16 is: {}", 128 as i16);
  // 128 转成 u8 还是 128,但转到 i8 相当于给 128 取八位的二进制补码,其值是:
  println!(" 128 as a i8 is : {}", 128 as i8);

  // 重复之前的例子
  // 1000 as u8 -> 232
  println!("1000 as a u8 is : {}", 1000 as u8);
  // 232 的二进制补码是 -24
  println!(" 232 as a i8 is : {}", 232 as i8);
}

非原生类型

Rust 使用 trait 解决类型之间的转换问题。最一般的转换会用到 From 和 into 两个 trait。不过,即便常见的情况也可能会用到特别的 trait,尤其是 从 String 转换到别的类型,以及把别的类型转换到 String 时。

From 和 Into

From trait允许一种类型定义 “怎么根据另一种类型生成自己”,因此它提供了一种类型转换的简单机制。在标准库中有无数From 的实现,规定原生类型及其他常见类型的转换功能。

Into trait 就是把From trait 倒过来而已。也就是说,如果你为你的类型实现了From,那么同时你也就免费获得了Into

use std::convert::From;

#[derive(Debug)]
struct Number {
  value: i32,
}

impl From<i32> for Number {
  fn from(item: i32) -> Self {
    Number { value: item }
  }
}

// 针对不同类型实现trait
impl From<char> for Number {
  fn from(item: char) -> Self {
    Number { value: item as i32 }
  }
}

fn main() {
  let int = 5;
  // 试试删除类型说明
  let num: Number = int.into();
  let num = Number::from(int);
  let num = Number::from('A');
  println!("My number is {:?}", num);
}

TryFrom 和 TryInto

类似于FromIntoTryFromTryInto是 类型转换的通用 trait。不同于 From/Into 的是,TryFromTryInto trait 用于易出错的转换,也正因如此,其返回值是Result型。

use std::convert::TryFrom;
use std::convert::TryInto;

#[derive(Debug, PartialEq)]
struct EvenNumber(i32);

impl TryFrom<i32> for EvenNumber {
    type Error = ();

    fn try_from(value: i32) -> Result<Self, Self::Error> {
      if value % 2 == 0 {
        Ok(EvenNumber(value))
      } else {
        Err(())
      }
    }
}

fn main() {
    // TryFrom

    assert_eq!(EvenNumber::try_from(8), Ok(EvenNumber(8)));
    assert_eq!(EvenNumber::try_from(5), Err(()));

    // TryInto

    let result: Result<EvenNumber, ()> = 8i32.try_into();
    assert_eq!(result, Ok(EvenNumber(8)));
    let result: Result<EvenNumber, ()> = 5i32.try_into();
    assert_eq!(result, Err(()));
}

ToString 和 FromStr

ToString

要把任何类型转换成 String,只需要实现那个类型的 ToString trait。然而不要直接这么做,您应该实现fmt::Display trait,它会自动提供 ToString,并且还可以用来打印类型,就像 print! 一节中讨论的那样。

use std::string::ToString;
use std::fmt::{Display, Formatter, Result};

struct Circle {
    radius: i32
}

impl ToString for Circle {
  fn to_string(&self) -> String {
    format!("Circle of radius {:?}", self.radius)
  }
}

// Display trait 和 ToString trait 实现其中一个即可
impl Display for Circle {
  fn fmt(&self, f: &mut Formatter) -> Result {
    write!(f, "{}", self.radius)
  }
}

fn main() {
    let circle = Circle { radius: 6 };
    println!("{}", circle.to_string());
}

`FromStr'

我们经常需要把字符串转成数字。完成这项工作的标准手段是用 parse 函数。我们得 提供要转换到的类型,这可以通过不使用类型推断,或者用 “涡轮鱼” 语法(turbo fish,<>)实现。

只要对目标类型实现了 FromStr trait,就可以用 parse 把字符串转换成目标类型。 标准库中已经给无数种类型实现了 FromStr。如果要转换到用户定义类型,只要手动实现 FromStr 就行。

fn main() {
   let parsed: i32 = "5".parse().unwrap();
   let turbo_parsed = "10".parse::<i32>().unwrap();

   let sum = parsed + turbo_parsed;
   println!{"Sum: {:?}", sum};
}

类型别名

可以用 type 语句给已有的类型取个新的名字。类型的名字必须遵循大驼峰命名。也可用注解忽略#[allow(non_camel_case_types)].

智能指针

  • 指针,常见的指针类型是引用,引用通过 & 符号表示。引用在 Rust 中被赋予了更深层次的含义,那就是:借用其它变量的值。引用本身很简单,除了指向某个值外并没有其它的功能
  • 智能指针,通过比引用更复杂的数据结构,包含比引用更多的信息,例如元数据,当前长度,最大可用长度等。String, Vec 都是智能指针

引用和智能指针的另一个不同在于前者仅仅是借用了数据,而后者往往可以拥有它们指向的数据,然后再为其它人提供服务。

智能指针往往是基于结构体实现,它与我们自定义的结构体最大的区别在于它实现了 DerefDrop 特征:

  • Deref 可以让智能指针像引用那样工作,这样你就可以写出同时支持智能指针和引用的代码,例如 *T
  • Drop 允许你指定智能指针超出作用域后自动执行的代码,例如做一些数据清除等收尾工作

智能指针在 Rust 中很常见:

  • Box<T>,可以将值分配到堆上
  • Rc<T>,引用计数类型,允许多所有权存在
  • Ref<T>RefMut<T>,允许将借用规则检查从编译期移动到运行期进行

Box

Box 的使用场景 由于 Box 是简单的封装,除了将值存储在堆上外,并没有其它性能上的损耗。而性能和功能往往是鱼和熊掌,因此 Box 相比其它智能指针,功能较为单一,可以在以下场景中使用它:

  • 特意的将数据分配在堆上
  • 数据较大时,又不想在转移所有权时进行数据拷贝
  • 类型的大小在编译期无法确定,但是我们又需要固定大小的类型时(递归类型)
  • 特征对象,用于说明对象实现了一个特征,而不是某个特定的类型

Box::leak

Box 中还提供了一个非常有用的关联函数:Box::leak,它可以消费掉 Box 并且强制目标值从内存中泄漏. 使用场景:

  • 可以把一个 String 类型,变成一个 'static 生命周期的 &str
    fn main() {
     let s = gen_static_str();
     println!("{}", s);
    }
    fn gen_static_str() -> &'static str{
      let mut s = String::new();
      s.push_str("hello, world");
      Box::leak(s.into_boxed_str())
    }
  • 需要一个在运行期初始化的值,但是可以全局有效,也就是和整个程序活得一样久,那么就可以使用 Box::leak; 例如有一个存储配置的结构体实例,它是在运行期动态插入内容,那么就可以将其转为全局有效,虽然 Rc/Arc 也可以实现此功能,但是 Box::leak 是性能最高的。

Deref

一个类型为 T 的对象 foo,如果 T: Deref<Target=U>,那么,相关 foo 的引用 &foo 在应用的时候会自动转换为 &U。

函数和方法中的隐式 Deref 转换

对于函数和方法的传参,Rust 提供了一个极其有用的隐式转换:Deref 转换。若一个类型实现了 Deref 特征,那它的引用在传给函数或方法时,会根据参数签名来决定是否进行隐式的 Deref 转换

fn main() {
    let s = String::from("hello world");
    display(&s)
}
fn display(s: &str) {
    println!("{}",s);
}
  • String 实现了 Deref 特征,可以在需要时自动被转换为 &str 类型
  • &s 是一个 &String 类型,当它被传给 display 函数时,自动通过 Deref 转换成了 &str
  • 必须使用 &s 的方式来触发 Deref(仅引用类型的实参才会触发自动解引用)
  • 表达式中不会执行隐式的解引用需要自己执行*

赋值操作需要手动解引用 方法调用会自动解引用

引用归一化

Rust 编译器实际上只能对 &v 形式的引用进行解引用操作,那么问题来了,如果是一个智能指针或者 &&&&v 类型的呢? 该如何对这两个进行解引用?

答案是:Rust 会在解引用时自动把智能指针和 &&&&v 做引用归一化操作,转换成 &v 形式,最终再对 &v 进行解引用:

  • 把智能指针(比如在库中定义的,Box、Rc、Arc、Cow 等)从结构体脱壳为内部的引用类型,也就是转成结构体内部的 &v
  • 把多重&,例如 &&&&&&&v,归一成 &v

Drop

Drop 的顺序

  • 变量级别,按照逆序的方式
  • 结构体内部,字段按照定义中的顺序依次 drop

Rc

引用计数(reference counting),当我们希望在堆上分配一个对象供程序的多个部分使用且无法确定哪个部分最后一个结束时,就可以使用 Rc 成为数据值的所有者

Rc 是指向底层数据的不可变的引用.

use std::rc::Rc;
fn main() {
  let a = Rc::new(String::from("hello, world"));
  let b = Rc::clone(&a);

  assert_eq!(2, Rc::strong_count(&a)); // 引用计数
  assert_eq!(Rc::strong_count(&a), Rc::strong_count(&b))
}

Arc

Arc 是 Atomic Rc 的缩写,顾名思义:原子化的 Rc 智能指针。原子化是一种并发原语. Arc 和 Rc 拥有完全一样的 API

Cell

可以在拥有不可变引用的同时修改目标数据,对于正常的代码实现来说,这个是不可能做到的(要么一个可变借用,要么多个不可变借用)。 内部可变性的实现是因为 Rust 使用了 unsafe 来做到这一点,但是对于使用者来说,这些都是透明的,因为这些不安全代码都被封装到了安全的 API 中.

Cell 和 RefCell 在功能上没有区别,区别在于 Cell 适用于 T 实现 Copy

use std::cell::Cell;
fn main() {
  let c = Cell::new("asdf");
  let one = c.get();
  c.set("qwer");
  let two = c.get();
  println!("{},{}", one, two);
}
  • "asdf" 是 &str 类型,它实现了 Copy 特征
  • c.get 用来取值,c.set 用来设置新值

RefCell

由于 Cell 类型针对的是实现了 Copy 特征的值类型,因此在实际开发中,Cell 使用的并不多,因为我们要解决的往往是可变、不可变引用共存导致的问题,此时就需要借助于 RefCell 来达成目的。

Rust 规则智能指针带来的额外规则
一个数据只有一个所有者Rc/Arc 让一个数据可以拥有多个所有者
要么多个不可变借用,要么一个可变借用RefCell 实现编译期可变、不可变引用共存
违背规则导致编译错误违背规则导致运行时 panic

可以看出,Rc/Arc 和 RefCell 合在一起,解决了 Rust 中严苛的所有权和借用规则带来的某些场景下难使用的问题。但是它们并不是银弹,例如 RefCell 实际上并没有解决可变引用和引用可以共存的问题,只是将报错从编译期推迟到运行时,从编译器错误变成了 panic 异常

use std::cell::RefCell;
fn main() {
    let s = RefCell::new(String::from("hello, world"));
    let s1 = s.borrow();
    let s2 = s.borrow_mut();

    println!("{},{}", s1, s2);
}

RefCell 简单总结

  • 与 Cell 用于可 Copy 的值不同,RefCell 用于引用
  • RefCell 只是将借用规则从编译期推迟到程序运行期,并不能帮你绕过这个规则
  • RefCell 适用于编译期误报或者一个引用被在多处代码使用、修改以至于难于管理借用关系时
  • 使用 RefCell 时,违背借用规则会导致运行期的 panic

选择 Cell 还是 RefCell

  • Cell 只适用于 Copy 类型,用于提供值,而 RefCell 用于提供引用
  • Cell 不会 panic,而 RefCell 会

Weak

Weak 非常类似于 Rc,但是与 Rc 持有所有权不同,Weak 不持有所有权,它仅仅保存一份指向数据的弱引用:如果你想要访问数据,需要通过 Weak 指针的 upgrade 方法实现,该方法返回一个类型为 Option<Rc> 的值。

因为 Weak 引用不计入所有权,因此它无法阻止所引用的内存值被释放掉,而且 Weak 本身不对值的存在性做任何担保,引用的值还存在就返回 Some,不存在就返回 None。

Weak 与 Rc 对比

WeakRc
不计数引用计数
不拥有所有权拥有值的所有权
不阻止值被释放(drop)所有权计数归零,才能 drop
引用的值存在返回 Some,不存在返回 None引用的值必定存在
通过 upgrade 取到 Option<Rc>,然后再取值通过 Deref 自动解引用,取值无需任何操作

Weak 总结

Weak 通过 use std::rc::Weak 来引入,它具有以下特点:

可访问,但没有所有权,不增加引用计数,因此不会影响被引用值的释放回收 可由 Rc 调用 downgrade 方法转换成 Weak Weak 可使用 upgrade 方法转换成 Option<Rc>,如果资源已经被释放,则 Option 的值是 None 常用于解决循环引用的问题

互斥锁 Mutex (mutual exclusion 的缩写)

Mutex让多个线程并发的访问同一个值变成了排队访问:同一时间,只允许一个线程A访问该值,其它线程需要等待A访问完成后才能继续 Mutex具有内部可变性

use std::sync::Mutex;

fn main() {
  let data = Mutex::new(0);
  let d1 = data.lock();
  let d2 = data.lock();
} // d1锁在此处释放

上面的代码会造成死锁

读写锁 RwLock

可以同时存在多个读操作,但同一时间只能有一个写操作

use std::sync::RwLock;
fn main() {
  let lock = RwLock::new(5);

  // 同一时间允许多个读
  {
    let r1 = lock.read().unwrap();
    let r2 = lock.read().unwrap();
    assert_eq!(*r1, 5);
    assert_eq!(*r2, 5);
  } // 读锁在此处被drop

  // 同一时间只允许一个写
  {
    let mut w = lock.write().unwrap();
    *w += 1;
    assert_eq!(*w, 6);

    // 以下代码会panic,因为读和写不允许同时存在
    // 写锁w直到该语句块结束才被释放,因此下面的读锁依然处于`w`的作用域中
    // let r1 = lock.read();
    // println!("{:?}",r1);
  }// 写锁在此处被drop
}

Atomic

Atomic的值具有内部可变性,你无需将其声明为mut

泛型

const 泛型

针对值的泛型而不是类型的泛型。

fn display_array<T: std::fmt::Debug, const N: usize>(arr: [T; N]) {
    println!("{:?}", arr);
}
fn main() {
    let arr: [i32; 3] = [1, 2, 3];
    display_array(arr);

    let arr: [i32; 2] = [1, 2];
    display_array(arr);
}

N 就是 const 泛型,定义的语法是 const N: usize,表示 const 泛型 N ,它基于的值类型是 usize;

const 泛型参数只能使用以下形式的实参:

  • 一个单独的 const 泛型参数
  • 一个字面量 (i.e. 整数, 布尔值或字符).
  • 一个具体的 const 表达式( 表达式中不能包含任何 泛型参数)
fn foo<const N: usize>() {}

fn bar<T, const M: usize>() {
    foo::<M>(); // ok: 符合第一种
    foo::<2021>(); // ok: 符合第二种
    foo::<{20 * 100 + 20 * 10 + 1}>(); // ok: 符合第三种
    
    foo::<{ M + 1 }>(); // error: 违背第三种,const 表达式中不能有泛型参数 M
    foo::<{ std::mem::size_of::<T>() }>(); // error: 泛型表达式包含了泛型参数 T
    
    let _: [u8; M]; // ok: 符合第一种
    let _: [u8; std::mem::size_of::<T>()]; // error: 泛型表达式包含了泛型参数 T
}

fn main() {}

自定义类型

自定义数据

  • struct: 定义一个结构体(structure)
  • enum: 定义一个枚举类型(enumeration)# 自定义类型

常量(constant)可以通过 conststatic 关键字来创建。

结构体

  • 元组结构体(tuple struct),事实上就是具名元组而已

    #![allow(unused)]
    fn main() {
      struct Pair(i32, f32);
    }
  • 经典的 C 语言风格结构体(C struct)

    #![allow(unused)]
    fn main() {
    struct Point {
    x: f32,
    y: f32,
    }
    }
  • 单元结构体(unit struct),不带字段,在泛型中很有用

    #![allow(unused)]
    fn main() {
    struct Nil;
    }

    枚举

    可以使用 impl 来为结构体定义方法

    #![allow(unused)]
    fn main() {
      enum WebEvent {
      // 一个 `enum` 可以是单元结构体(称为 `unit-like` 或 `unit`),
      PageLoad,
      PageUnload,
      // 或者一个元组结构体,
      KeyPress(char),
      Paste(String),
      // 或者一个普通的结构体。
      Click { x: i64, y: i64 }
      }
      impl WebEvent {
          fn run(&self) { ... }
      }
      // 类型别名 (结构体也可以使用类型别名)
      type WE = WebEvent;
    
      // 拥有隐式辨别值(implicit discriminator,从 0 开始)的 enum
      enum Number {
          Zero,
          One,
          Two,
      }
    }

// 拥有显式辨别值(explicit discriminator)的 enum enum Color { Red = 0xff0000, Green = 0x00ff00, Blue = 0x0000ff, }

## 常量

Rust 有两种常量,可以在任意作用域声明,包括全局作用域。它们都需要显式的类型声明.
- `const`:不可改变的值(通常使用这种), <mark>变量都得显式地声明类型</mark>
- `static`:具有 'static 生命周期的,可以是可变的变量(须使用 static mut 关键字, 这个操作是unsafe的,所义操作要放在unsafe块中),<mark>static 变量都得显式地声明类型</mark>
```rust
// 全局变量是在在所有其他作用域之外声明的。
static LANGUAGE: &'static str = "Rust";
static NUMBER: i32 = 10;
const THRESHOLD: i32 = 10;

static mut MUT_NUM: i32 = 10;
unsafe {
  MUT_NUM = 22;
}
unsafe {
  println!("const MUT_NUM value is {}", MUT_NUM);
}

裸指针

*const T*mut T在Rust中被称为“裸指针”

可以绕过Rust的安全保障

有一些你需要记住的裸指针不同于其它指针的地方。它们是:

  • 不能保证指向有效的内存,甚至不能保证是非空的(不像Box和&);
  • 没有任何自动清除,不像Box,所以需要手动管理资源;
  • 是普通旧式类型,也就是说,它不移动所有权,这又不像Box,因此Rust编译器不能保证不出像释放后使用这种bug;
  • 缺少任何形式的生命周期,不像&,因此编译器不能判断出悬垂指针;
  • 除了不允许直接通过*const T改变外,没有别名或可变性的保障。
fn main() {   
  let x = 5;
  let raw = &x as *const i32;
  //当你解引用一个裸指针,你要为它并不指向正确的地方负责。为此,你需要unsafe:
  let points_at = unsafe { *raw };      
  println!("raw points at {}", points_at);
}

Clipping

三体三部曲

Author: 刘慈欣

  在中国,任何超脱飞扬的思想都会砰然坠地的,现实的引力太沉重了。

2015/01/02 12:21:15

开放的智力:知乎采铜自选集

Author: 采铜

  世事艰难,任何自怨自艾或者洋洋自得都是一种轻佻。一个人,应该为自己的才能,为自己是宇宙中唯一的坐标负起责任,而不是左顾右盼、随波逐流。如果你抱怨自己出身不佳以及资质平平,那么就应该义无反顾地努力赚钱,拼尽全力,为自己更为自己的家人,使之过上有尊严、有保障的生活;如果恰巧你发现自己身上有那么一点天才,那么你还可以考虑,为这个世界贡献点什么美好的东西。

2015/02/14 15:21:03

人生的意义牛津通识读本

Author: [英国] 特里·伊格尔顿

  人类也许是唯一一种永远生活在死亡阴影下的动物。

2015/03/16 10:33:33

  语言不仅使得我们把握自身,也帮助我们从整体上思考自身的境况。

2017/06/23 08:51:25

  一个从未问过自己人生过得如何、该如何更好地生活的人,会显得尤其缺乏自我意识。

2017/06/23 09:44:05

  人生没有既定的意义,这就为每个个体提供了自主创造意义的可能。如果我们的人生有意义,这个意义也是我们努力倾注进去的,而不是与生俱来的。

2017/07/28 07:57:23

  宗教原教旨主义有一种神经质似的焦虑,觉得如果没有一种所有意义背后的终极意义,意义就根本无以立足。这不过是一种轻率的虚无主义。

2017/07/28 09:36:48

  如果有人觉得他解决了人生的问题,”他写道,“并且想要告诉自己一切现在都变得简单,那么,只要他想一想自己过去没发现这个‘答案’的时候,便会意识到自己错了;而那时候也照样生活,现在发现的人生答案就过去的生活来看似乎是偶然

2017/08/12 09:04:14

  如果这些神话能让我们怀着价值感和目的感去行动,那么,它们就足够真实,值得继续。

2017/08/12 09:12:05

  欲望是永恒的,而欲望的满足则是罕见而不连续的。只要自我持续存在,被我们称做“欲望”的致命传染病就不会消失。只有无我的审美沉思,以及一种佛教式的自我克制,才能治愈我们因匮乏而产生的散光病,重新看清这世界的本来面目。

2017/08/12 09:23:12

  幸福有时被看做一种心理状态

2017/09/15 09:46:07

  幸福充当了人生的一种基础,因为你不能问我们为什么要追求幸福。它不像金钱或权力一样是追求其他东西的手段。它更像是希望得到尊重。想要幸福,这似乎是我们人性的一部分

2017/09/17 18:07:36

  幸福是实际的生活方式的一部分,不是某种私密的内在满足。

2017/09/17 18:10:01

  亚里士多德认为幸福不是可能实施某些行动的内在倾向,而是创造心理倾向的行为方式。

2017/09/17 18:15:13

  有些思想家认为人生的意义问题本身并无意义,之所以如此认为,有一个相当坚实的理由。意义是一个语言层面的东西,无关实体

2017/09/22 10:00:26

看见

Author: 柴静

  道德,不是没有弱点,而是看清它,然后抑制它。

2015/03/24 00:22:40

  人被硬生生直接摁在犬牙交错的生活上,切开皮肤,直入筋骨

2015/03/25 00:24:43

  你在家里,在单位,在认识的人面前,你被当成一个人看,你被尊重,但在一个没人认识你的地方,你可能会被当成东西对待。我想在任何地方都被当成人,不是东西,这就是尊严。

2015/03/26 00:21:59

  在没有过去和未来的地方,爱活不下来,只有性。

2015/03/26 00:24:13

  因为我们的性文化里,把生育当作性的目的,把无知当纯洁,把愚昧当德行,把偏见当原则。

2015/03/26 00:29:19

  生和死,苦难和苍老,都蕴涵在每一个人的体内,总有一天我们会与之遭逢。

2015/03/26 00:35:53

  不要因为一样东西死去就神话它。

2015/03/30 13:13:20

  生命往往要以其他生命为代价,但那是出于生存。只有我们人类,是出于娱乐。

2015/03/31 00:23:34

  嘲笑、轻蔑、愤怒、报复……这些情绪,都与恨有关或者含有因恨而起的成分,不能 成为善。

2015/03/31 00:49:18

  别在生活里找你想要的,要去感受生活里发生的东西。

2015/04/01 13:13:59

  赌脑袋的结果是产生新的偏见与迷信。

2015/04/03 00:49:37

  宽容不是道德,而是认识。唯有深刻地认识事物,才能对人和世界的复杂性有了解和体谅,才有不轻易责难和赞美的思维习惯。

2015/04/03 00:51:53

  平淡而近自然

2015/04/06 00:29:26

  感情在血肉里,尖刀剜不掉。

2015/04/06 00:32:39

  这个世界上有很多极端认真的蠢人

2015/04/06 00:57:57

  人类只是个概念,一代一代人都是相似的生活,这辈子决定你悲欢的就是你身边的几个人。

2015/04/06 13:22:24

  我也不知道我生活在这个世界上是为了什么,有什么使命,这个只能是慢慢摸索的,所以只能慢慢看有什么结果,也许过了几年我明白,为什么要这样。」

2015/04/10 00:48:25

  和解,是在心里留了一个位置,让那个人可以进来。

2015/04/13 23:34:54

少有人走的路

Author: M·斯科特·派克

  自律的核心,就是学习自我照顾,承认自我价值的重要性,

2015/05/20 22:28:32

  故步自封,逃避挑战,可说是人性的基本特征之一。

2015/05/23 20:30:50

  我们长期以来的想法和感受,有一天将会被某个陌生人一语道破。 ———拉尔夫·沃尔多·爱默生

2016/08/29 21:33:37

  所谓自律,是以积极而主动的态度,去解决人生痛苦的重要原则,主要包括四个方面:推迟满足感、承担责任、尊重事实、保持平衡。

2016/08/29 21:49:23

  父母习惯用严厉的体罚教训孩子,本质上不是教育,而是发泄怨气和不满

2016/08/31 20:28:38

  自尊自爱的感觉,是自律的基础。自律的核心,就是学习自我照顾,承认自我价值的重要性,并采取一切措施照顾自己,这是走向自立的关键

2016/08/31 20:32:41

  神经官能症患者为自己强加责任,患有人格失调的人却不愿承担责任。与外界发生冲突和矛盾,神经官能症患者认为错在自己,人格失调症患者却把错误归咎于旁人。

2016/09/05 20:06:56

  神经官能症患者常常把“我本来可以”、“我或许应该”、“我不应该”挂在嘴边。不管做任何事,他们都觉得能力不及他人,他们缺少勇气和个性。人格失调症患者则强调“我不能”、“我不可能”、“我做不到”,他们缺少自主判断及承担责任的能力

2016/09/05 20:08:21

  大多数病人力不从心的根源,在于他们总想逃避自由,不能够为他们的问题、他们的生活承担责任。他们感到乏力,在于他们放弃了自己的力量。如果得到治疗,他们就会知道,作为成年人,整个一生都充满选择和决定的机会。他们接受这一事实,就会变成自由的人;无法接受这种事实,永远都会感到自己是个牺牲品。

2016/09/05 20:17:59

  抱残守缺,与现实脱节,这是不少人的通病。坚守过时的观念,对现实漠然置之,是构成诸多心理疾病的根源,这种情形,心理学家称之为“移情”。

2016/09/05 20:22:26

  逃避现实的痛苦和不幸,是人类的天性,只有通过自律,才能逐渐克服现实的痛苦。我们必须尊重事实,尽管这会带来痛苦,但远比我们的个人利益和暂时的舒适更为重要。我们必须淡化暂时的不适之感,应该追求真理而不是幻象,并愿意承受所有的痛苦。要让心灵获得成长,让心智走向成熟,就要竭尽全力,永远尊重事实,乃至献身真理。

2016/09/05 20:27:33

  长时间自欺欺人,使人的愧疚积聚,就会导致心理疾病。

2016/09/05 20:38:01

  放弃自我,是耗时长久、逐步适应的过程,我们需要经历各种各样的痛苦。为了减少痛苦,我们需要学习一种极为重要的保持平衡的心理技巧,我称之为“兼容并包”。这是促进心智成熟不可或缺的工具。兼容并包,意味着既要肯定自我,以保持稳定,又要放弃自我,以腾出空间,接纳新的想法和观念,实现自我平衡。

2016/09/06 20:43:11

  爱是长期的和渐进的过程。爱是自我完善,意味着心智不断成熟。爱,能够帮助他人进步,也会使自我更加成熟。换言之,我们付出爱的努力,不仅能让他人的心智成熟,自己也同样获益

2016/09/06 20:53:44

  真正意义上的爱,既是爱自己,也是爱他人。爱,可以使自我和他人感觉到进步。不爱自己的人,绝不可能去爱他人。父母缺少自律,就不可能让孩子懂得什么是自我完善。

2016/09/06 20:55:10

  爱是自我完善,也是帮助他人完善。它意味着持续努力,超越自我界限。爱,不能停留在口头上,而要付诸行动。我们爱某人或爱某种事物,就不可能坐享其成,而是要持续地努力,帮助自己和他人获得成长。

2016/09/06 20:55:27

  坠入情网不是真正的爱,其本质究竟是什么呢?仅仅是自我界限暂时的崩溃吗?在我看来,它与人的“里比多”(性的需求和原动力)有关,或与受基因支配的生物交配本能有关。坠入情网,是人类内在性的需求和外在性的刺激,产生的典型生理和心理的反应,意义在于增加人类生殖机会,促进物种繁衍和生存。或者说,坠入情网是人类基因对于人类理性的征服,使我们心甘情愿地落入婚姻“陷阱”。倘非原始基因在起作用,不知有多少恋人或者配偶(包括幸福的人和不幸福的人)在步入婚姻殿堂之前,就会因想到婚后要面对的现实,而感到张皇失措,只想落荒而逃!

2016/09/06 21:05:08

  坠入情网,惟一的好处就是消除寂寞。即便经由婚姻,使这一功用得以延长,也无助于心智的成熟。只要坠入情网,我们便以为生活在幸福的巅峰,以为人生无与伦比,达到登峰造极的境界。彼时彼刻,我们觉得心智成熟与否并不重要,重要的是当前的满足感。我们忘记了一个事实:我们和爱人的心灵其实并不完善,而是需要更多的滋养。可是,在我们眼中,对方近乎十全十美,虽然有缺点和毛病,那也算不上什么,甚至只会提升其价值,增加对方在我们眼中的魅力。

2016/09/07 19:24:06

  我们把初恋时爱的感觉,当成永恒的爱。这是一种错觉、一种误会,我们后悔不迭,要么一辈子痛苦,要么与对方分道扬镳。

2016/09/07 19:25:37

  真正的爱,是自我完善的特殊体验,跟自我界限有着密切关联。陶醉在爱的情感里,我们感觉灵魂无限延伸,奔向心爱的对象。我们渴望给对方滋养,我们希望对方成长。被自我界限之外的对象吸引,迫使我们产生冲动,想把激情乃至生命献给对方,心理学家把这样的激情状态,称为“精神贯注”

2016/09/07 19:28:54

  对于某种事物长期的爱,使我们生活在精神贯注的境界里,自我界限开始延伸。延伸到一定程度就会归于消失,而我们的心智就会成熟,爱不断释放,自我与世界的区别也越来越模糊,我们与外在世界融为一体

2016/09/07 19:30:41

  还有一种最常见的对爱的误解,就是将依赖性当成真正的爱

2016/09/07 19:34:24

  真正的爱是自由的选择。真正相爱的人,不一定非要生活在一起,充其量只是选择一起生活罢了

2016/09/07 19:35:08

  消极性依赖心理的特征之一,是缺乏真正的爱

2016/09/07 20:05:01

  过分依赖的一个重要特征,是它和心智的成熟无关。

2016/09/07 20:07:34

  爱的惟一目标,乃是促进心智的成熟,或者推动人类的进步。

2016/09/07 20:08:23

  “爱”是抽象的字眼,有时候,爱的意义太过笼统,由此经常遭到滥用,妨碍我们接触爱的真谛。我不指望人人了解爱的本意,但相当多的人显然滥用了“爱”。他们习惯于用“爱”来形容关心的事物,却极少去考虑爱的本质,也很难恰当区分智慧和愚蠢、善良与邪恶、高贵与卑贱,这是危险而可怕的事实。

2016/09/07 20:10:01

  因为真正的爱的本质之一,就是希望对方拥有独立自主的人格。最后一点是,我们豢养宠物,只是希望它们永远都不要长大,乖乖地陪伴我们。我们看重的,是宠物对我们的依赖性。

2016/09/07 20:11:47

  爱,绝不是无原则地接受,也包括必要的冲突、果断的拒绝、严厉的批评。

2016/09/07 20:16:33

  爱,在某种意义上是自私的,最终的追求则是自我完善。当然,自私与否,不是判定爱的标准,惟一的判断标准是:爱———永远追求心智的成熟,除此以外,都不是真正的爱。

2016/09/12 19:47:55

  真正的爱,须以全部身心投入和奉献,需要付出全部的智慧和力量。使爱的对象得到成长,就必须付出足够多的努力(甚至是自我牺牲),不然爱的愿望就会落空。

2016/09/12 19:50:37

  扩充自我界限,意味着摆脱惰性,直面内心的恐惧,这就是说,爱可以使我们勇气倍增。

2016/09/12 19:54:53

  完整意义的人生,势必伴随着痛苦,其中最大的痛苦之一,就是面对心爱之人或心爱之物的死亡。如果你想避免其中的痛苦,那你恐怕只有完全脱离现实,去过一种没有任何意义的生活。

2016/09/12 20:10:37

  生命的本质,就是不断改变、成长和衰退的过程。选择了生活与成长,也就选择了面对死亡的可能性。前面提到的那位女士,一直活在狭隘的圈子里,可能

2016/09/12 20:11:16

  人生惟一的安全感,来自于充分体验人生的不安全感。

2016/09/13 19:13:54

  自律的力量来自于爱,而爱的本质是一种意愿。自律,是将爱转化为实际行动的过程。所有的爱,都离不开自律。真正懂得爱的人,必然懂得自我约束,以此促进对方心智的成熟。

2016/09/13 19:38:32

  真正的爱,需要自我完善,需要付出必要的精力,而我们精力总归有限,不可能疯狂地去爱每一个人。

2016/09/13 19:40:16

  爱的重要特征之一,在于爱者与被爱者都不是对方的附属品。付出真爱的人,应该永远把爱的对象视为独立的个体,永远尊重对方的独立和成长。

2016/09/14 19:39:23

  因惧怕孤独而选择婚姻,注定不会成就幸福的婚姻。真正的爱尊重彼此的独立,也敢于承担分离和意外丧偶的风险

2016/09/14 19:51:45

  自律最重要的意义之一,就是认清我们的责任和决策的能力,我们将这一部分心智称为“意识”

2016/09/16 19:16:44

  爱,就是为了心智的成熟而自我完善的意愿,真正拥有爱的人,心灵自然会不断成长。

2016/09/16 19:47:26

文化苦旅

Author: 余秋雨

  当峨冠博带早已零落成泥之后,一杆竹管笔偶尔涂划的诗文,竟能镑刻山河,雕镂人心,永不漫漶。

2015/05/25 20:40:21

  人生,就会成为一种简单的轨迹,一种沉闷的重复。

2015/06/07 16:38:54

醒世恒言

Author: 冯梦龙

  要知天下事,须读古人书

2015/07/17 00:44:16

  观棋不语真君子,把酒多言是小人

2015/09/16 00:55:35

喷嚏图卦

Author: KindleEar

  中国人有一颗“只要你和别人不一样,就觉得你需要教导”的温暖爱心和“不管自己多么平庸,都要去影响别人、教导别人”的责任感。

2015/08/24 01:26:30

  这是一个注意力越来越分散的时代,即使你想躲避于一隅,还是到处横七竖八牵制你的力量。这个信息商业时代真抓住了人类的弱点,利用其弱点,一点点肢解与剥削你的注意力。当你习惯了注意力分散,就没有了对自己的守持,也就越来越丧失自己的左右权。每天都只能懊悔于这种丧失了

2015/12/10 13:21:27

悟空传

Author: 今何在

  还有记忆。没有了欲望,就无烦无恼,不会再痛苦。没有了记忆,就无牵无挂,不会再留恋。

2015/09/24 21:44:53

  我要这天,再遮不住我眼, 要这地,再埋不了我心, 要这众生,都明白我意,要那诸佛,都烟消云散。

2015/09/24 22:03:54

哲学家们都干了些什么

Author: 林欣浩

  无论是原文还是中文翻译,它的字面意思都差不多,指的是“超脱于物理世界之上的道理”。 我们可以简单地理解成,形而上学就像笛卡尔希望的那样,寻找到一个能高于客观世界,能统领一切事物的真理。

2016/01/19 12:21:49

  形而上学

2016/01/19 12:22:10

无后为大

Author: 关军

  人类社会的最基本道德准则,就是你的自私不要通过损害他人的利益来实现

2016/05/08 15:09:13

  一位学者曾撰文指出,人生的首要任务在于自我实现,把希望转到下一代其实意味着逃避。中国人通常不重视自身发展,而转向对下一代“望子成龙”,结果形成多层次、低质量的恶性循环。

2016/06/10 19:55:36

  而在中国传统文化里,子女被当做私有之物,是凭借父母的恩德存在的。中国人潜意识里有一条强横的逻辑——这生命是我们创造的,而且我们付出那么多,当然得要求所有权,要求回报。

2016/06/10 20:05:09

  未经他本人同意而将其带入这个人间,而且通过别人负有责任的自由意志把他安排在人间。这种行为加给父母一项责任——尽他们所能及之力——要满足他们子女的需要。”

2016/06/11 20:13:43

  要知道,当家长对子女太在意的时候,家长过度的牵挂、关切、纠结、心痛都会成为子女的负担

2016/06/11 20:36:26

  生活中,我看到一些解释不清的情感,一些父母愿意为孩子倾尽毕生的积蓄,却不会俯身倾听孩子的意愿;他们可以像斑鸠那样危难时刻冒死解救孩子,日常生活却在对孩子动用暴力。我想,不尊重对方真正的利益与意愿,那就连爱的边儿都沾不上。别以为做出巨大牺牲,就证明得了无私的爱,更不要以这个欺骗和要挟他人。

2016/06/12 21:31:01

  某些家长也偶尔作出开明豁达的姿态,他们说“我会给孩子多一些自由”。有没有搞错,自由是每个人的天赋权利,不应是你的给予,你的赏赐。二十岁的安德烈在给母亲龙应台的信中点明了这个常识:你给我足够的自由,是的,但是你知道吗,你一边给,一边觉得那是你的“授权”或“施予”。你并不觉得那是我本来就有的天生的权利!

2016/06/12 21:35:59

  经验主义限制了自由的天性,也扼杀着孩子的选择权。一本名为《家为何会伤人》的书中写道:生命的意义在于选择,当一个人不断为自己的人生作选择时,那么不管这些选择是对是错,他的生命都会因为自主选择而丰富多彩,而他的心理能量都会不断增加。只有作过选择,一个人才算活过。假若这个人的一生中都是别人在替他做选择,那么他的生命就没有意义,不管别人给了他多少东西,不管那些选择从理性上看多么“正确”,他都会因此而虚弱无力

2016/06/12 21:38:16

  心理学即认为,人被迫接受一样东西的时候,是压抑的,没有愉悦感的

2016/06/12 21:39:11

  通常与炫耀纠缠到一起的,还有一种通过孩子完成自我再实现的心态。潜意识里,父母大多会把自身投射到子女身上,而且冀望投射的是一个更理想化的自己。他们关爱子女,其实也是在关爱自身,他们表现出“恨铁不成钢”的焦躁,其实是担心自我再实现的失败。

2016/06/12 21:43:55

  如果下半辈子寂寞痛苦(这个可能性很大,人生往往苦多于乐),就去找一个老伴,实在不行,找两个老伴,总能热闹起来的;如果心理变态,就去看心理医生,多看几个,总能治好的。千万不要打孩子的主意,饶了他们吧,至少从我们这代开始,让我们自己照顾自己的下半辈子,让孩子活得像个人样。

2016/06/12 21:48:56

  现代心理学已经证明,两代人之间的某些冲突关系几乎是一种必然,尤其父子、母女冲突更为明显;而夫妻关系也会因孩子的地位而产生颇多的微妙变化。人们所说的稳固,只是由责任而增加的绑定,并非增加了和谐共处的可能性。

2016/06/13 20:36:19

  克里希那穆提说:“今日,人们只有受到严格的训练才能成为律师或医生,然而奇怪的是,他们却能够身为父母而不必接受任何教育,以为无需教育就能胜任此项至为重要的工作。”

2016/06/14 20:45:30

  人活一世,其实全在为三个字奔忙,那就是“安全感”——很遗憾,这与其他动物别无二致——通俗地说,就是维系这条性命的愿望以及由此衍生出的各种次级欲求。为了寻求安全感,人们走向教堂寺庙;为了寻求安全感,人们依附于国家或组织;为了寻求安全感,人们遵命于既有经验。

2016/06/14 20:52:32

  生而为人,接受符合人性的教育,这是多么初级的要求啊。对于孩子而言,人性化教育更是须臾不可或缺。

2016/06/15 20:39:41

  在我眼中,那些大红绸缎看上去真是血腥啊,教育越来越成为一件成王败寇的残酷战争,你又该找谁去奢谈人性?

2016/06/15 20:41:50

  现行的教育模式一心想让孩子们成“才”,却不在乎他们是否成“人”。中国父母们,在无法成人的儿女面前,既是主谋又是从犯,既是教育模式的设计者又是教育模式的就范者,既是教育产业和商业的买单人又是投诉人,既是既得利益者又是受害者,既是暴君又是奴隶。 以“为了孩子”的名义,令父母苦不堪言、孩子无法成人——这不是爱,而是整个社会的黑色幽默。

2016/06/15 20:49:18

  受教育不是为了获得知识的碎片,而是要培养独立人格和思辨精神,这才是完整的人生

2016/06/16 20:51:03

  依我看,在工具理性的巨大磁场下,先是有大量的人被吸附过去,他们形成一股潮流以后,接着就发生了裹挟甚至胁迫。许多人知道那不是自己想要的,却抵御不住恐慌,或是找不到别的可能,他们注定比那些原本糊涂的人更痛苦

2016/06/16 20:55:23

  过去的愚民教育是不让人受教育,现在是让人们受某一种教育

2016/06/16 21:01:40

  被誉为习性学之父的奥地利生物学家、心理学家康纳德·洛伦茨就认为,现代人“对所有引起不快的刺激情境越来越敏感,对所有引起快乐的刺激情境越来越迟钝”,对生活舒适度的要求不断提高,且无法容忍“生活质量”的倒退。他把这些定义为“情感的暖死亡”

2016/06/16 21:16:19

  欲望永难穷尽而又与幸福无关。我们终生孜孜以求之所谓美好生活,不过是水面跃动的月影

2016/06/17 22:46:38

追寻生命的意义

Author: 弗兰克

  正是存在主义的中心思想所在:活着便是受苦,要活下去,便要由痛苦中找出意义。如果人生真有一点目的,痛苦和死亡必定有其目的。可是,没有人能告诉别人这个目的究竟是什么。每个人都得自行寻求,也都得接受其答案所规定的责任。如果他找到了,则他即使受尽屈辱,仍会继续成长。弗兰克特别喜欢引用尼采的一句话:“懂得‘为何’而活的人,差不多‘任何’痛苦都忍受得住。

2016/08/28 21:00:40

乌合之众大众心理研究

Author: 古斯塔夫·勒宠

  “群体心理”是不可靠的,是暂时的,一旦构成群体的人群四分五散,每个人立即恢复到了自己以前的状态,但在群体之中,他的个性却消失了,不见了,这时候他的思想与感情所表达的与群体的思想感情完全一致

2016/11/07 20:51:19

  群体中的人有两个共同的特点:首先是每一个人个性的消失,其次是他们的感情与思想都在关注于同一件事

2016/11/07 20:52:24

  构成这个群体的人,不管他是谁,不管他们的生活方式有多大区别,不管他的职业是什么,不管他是男是女,也不管他的智商是高还是低,只要他们是一个群体,那么他们就拥有一个共同的心理——集体心理

2016/11/07 20:58:02

  任何一种精神结构都包含着各种性格的可能性,而环境的突变,却会让这种可能性表现得更为突出。

2017/04/11 20:52:53

  无意识主宰着有机体的生活,而且在有机体的智力活动中,这种力量也起着决定性的作用。

2017/04/11 20:59:53

  所有有意识的行为,都只不过是遗传基因控制下的无意识深渊中的隐秘心理活动的产物,或许永远也不会有人能够在他的有生之年得以一窥潜意识的暗黑世界的真相——积淤在这个深层次结构之中的是生物无数个世代传承相递的无计其数的共同特征,正是这些永远也不为我们所知的共同特征构成了一个种族的先天秉性。

2017/04/11 21:01:55

  同一种族的所有人,都有着一个普遍的性格特征,即使是智力上的悬殊差异或是后天教育的效果所无法弥补的。 而支配这种普遍的性格特征的,正是我们的无意识,同一种族中的大多数普通人在同种程度上都具备这种普遍特性

2017/04/11 21:03:51

  表现出差别的异质化被同质化吞没了,最终是无意识品质决定了群体的智慧。

2017/04/12 20:37:21

  群体只有很普通的品质。 群体只有很普通的智慧。 群体也只有最基本的智能。 群体同时也只具有最低甚至更低层次的智力

2017/04/12 20:37:45

  曾经牢固的约束于一个人的责任感就会荡然无存,而群体得到的,是最为原始的本能表达与宣泄。

2017/04/12 20:41:45

  群体有着自动放大非理性冲动的能力——暗示的作用对于群体中的每一个人都会起到相同的作用

2017/04/12 20:53:48

  群体中的个人行为表现具有如下四个特点: 第一,是自我人格消失; 第二,是无意识人格起到决定性的作用; 第三,是情感与思想在暗示与传染的作用下转向一个方向; 第四,是暗示的观念具有即刻转化为行动的冲动。

2017/04/12 20:57:57

  群体最主要的特点表现为冲动、急躁、缺乏理性、没有判断力和批判精神,以及夸大情感等

2017/04/12 21:15:12

  孤立的个人具有主宰自己的反应行为的能力,群体则缺乏这种能力。

2017/04/13 19:02:14

  群体就意味着约束的解除——因为数量就是正义,群体对此看法是没有任何疑义的

2017/04/13 19:07:00

  群体的表现往往充满了暴戾的成分。

2017/04/13 19:11:59

  种族的基本特点是我们一切情感产生的根本来源

2017/04/13 19:15:01

  群体相信一切不可能的事情,相信一切不合逻辑的事情,相信一切不合情理的事情,相信一切不存在的事情,但唯独——不相信现实生活的日常逻辑

2017/04/13 19:19:12

  群体之中最易于引发幻觉现象

2017/04/13 19:25:25

  群体往往还会夸大他们在某方面的感情。这使得他们开始信奉原始人的热情,信奉英雄主义,而这些东西在一个理性个体身上是绝对没有的

2017/04/14 21:33:30

  群体总是对强权俯首帖耳,却很少为仁慈心肠所动!

2017/04/15 18:56:42

  群体推理的特点,是把彼此不同,只在表面上相似的事物搅在一起,并且立刻把具体的事物普遍化。因此不妨说,他们并不推理或只会错误地推理,也绝不会受到推理过程的影响

2017/04/17 20:43:12

  群体没有理性的思维过程,虚构的因素对它们的影响,几乎比现实因素的影响还要大,他们对于这两者,有着不加区分的明显倾向

2017/04/17 20:51:04

  影响民众想象力的并不是事实本身,而是它们发生和引起注意的方式。因此只有对它们进行浓缩加工,它们才会形成一种令人瞠目结舌的惊人形象

2017/04/17 20:55:26

  他成家立业,落入生活的俗套,而只要落入这种俗套,他就会把自己封闭在狭隘的职业中,工作也许还算本分,但仅此而已。这就是平庸的生活,收益和风险不成比例的生活

2017/04/18 20:56:24

  我们终于知道了,尽管理性永远存在,但文明的动力仍然是各种感情,就像是尊严、自我牺牲、宗教信仰、爱国主义以及对荣誉的爱这些东西。

2017/04/19 21:03:46

  群体永远不欢迎理性,一切文明的主要动力也并不是理性。 对于群体来说,理性除了反面的影响,什么作用也无法施加,他们接触到的理性越多,就越是憎恶理性,也就变得更加狂热。

2017/04/19 21:04:43

  每个领袖都有自己独特的动员手段,其中有三种手段最为重要,也十分明确,即断言法、重复法和传染法

2017/04/19 21:24:20

知乎周刊・单身会上瘾

Author: 知乎

  我们所有的迷茫与纠结,恰恰因为我们把目光只放在「结婚」或者「不结婚」,我们辗转反侧,因为我们期盼只一种选择便可以带自己过幸福生活。

2017/02/11 08:19:01

  不愿意对自己的生活负责,希望一劳永逸,希望别人指出哪条路是正确的,以便于当结果有偏差时可以把责任推卸给别人,这是懒惰。

2017/02/11 08:19:28

  想结婚的就去结婚,想单身就维持单身,反正到最后你们都会后悔。(萧伯纳)

2017/02/11 08:23:35

  人生只有一次,自己都活不明白,你无法评判他人的选择。

2017/02/11 08:25:58

  不懂给人幸福的人,即使结了婚,依然自私得可怕。而温暖善良的人,有时候给不了你红地毯的承诺,却在每天清晨给你最真诚的笑容和依靠。

2017/02/11 08:28:25

  对成功者而言,能够抛弃无用的东西是必须具备的能力。忙碌的人忙于任何事情,除了生活。

2017/02/11 08:29:02

  爱一个人,就意味着赋予了这个人伤害自己的权力,同时相信他/她不会滥用这份权力。

2017/02/11 08:31:07

  我们拥有的越多,失去的也就会越多。一个人对我们越重要,我们就越害怕失去他/她;一段生命越美好,越具有价值和意义,我们就越不想结束生命。

2017/02/11 08:38:11

  一个人理想化的恋人,就是理想化的自己,既有自己向往的优势,又有知己般的细腻呵护,能够完全理解自己,能够完全拥抱自己。只是,这种自我融合的幻想,在现实中是不可能的。

2017/02/11 08:41:31

  恋爱绝不是控制和反控制,而是基于自我理解上的亲密关系。恋爱既是拥抱他人,也是拥抱自己。

2017/02/11 08:43:12

  我们每个人其实都应该给自己一些孤独的时间。这样我们的生活才不依附于任何人,才能保持灵魂的独立,才能学会控制自己的欲望,而能够控制自己的欲望的人,生活质量会比欲望爆棚的人幸福很多。也更容易保持心理上的平衡。

2017/02/11 08:46:07

Kindle什么值得读TOP100

Author: Kindle 中国

  你我生而为人,你我孤寂无依,可就任斜阳孤影叹伶仃,不如随心,随性?!

2017/03/17 20:52:18

  田青说:没有欲望和遮掩的快乐,是真正的快乐;能坦坦然然活着和死去的自由,是真正的自由。

2017/03/19 11:06:24

  死亡虽是我们每个人的宿命,但看待死亡的视角,却可以让人们获得拯救。

2017/03/19 11:47:29

精进:如何成为一个很厉害的人

Author: 采铜

  我们总是在惯性中生活,在教导下学习,在成规中思考,在劝解中决定,并在无助的结果中自责。我们着实需要一种智识和能力,去观察、反思自己被局限的生活,去发现和实践更多成长和成才的路径。

2017/03/20 07:43:29

  一个人如何对待他的时间,决定了他可以成为什么样的人。

2017/03/20 07:47:14

  郑重是这样一种态度:不敷衍、不迟疑、不摇摆,认真地聚焦于当下的事情,自觉而专注地投入。

2017/03/20 07:48:18

  郑重是这样一种态度:因恪守本心而知事情轻重缓急,因尽全力无保留而使其事竟成、光阴未曾虚度。

2017/03/20 07:49:38

  远期未来的视角下,人们倾向于用抽象、概括的方式去思考。

2017/03/20 08:03:24

  在分析一件事情值不值得去做、花多少精力去做的时候,可以从两个角度来评估:一是这件事在当下将给“我”带来的收益大小,这个收益可以是心智、情感层面的,也可以是身体、物质层面的,我称之为“收益值”;二是这项收益随时间衰减的速度,我称之为“收益半衰期”,半衰期长的事件,其影响会持续较久。

2017/03/20 08:52:42

  高收益值、长半衰期事件:找到真爱;学会一种有效的思维技巧;与“大牛”进行一场意味深长的谈话。

2017/03/20 08:53:46

  现代社会的快节奏、碎片化和功利性等特点,使得现代人很容易陷入“两个无能”之中,一是“选择无能”,二是“执行无能”:

2017/03/20 08:59:11

  正如历史学家帕金森提出的帕金森第一定律:工作会自动膨胀,直至占满所有可用的时间。

2017/03/20 09:08:41

  侯世达定律:“实际做事花费的时间总是比预期的要长,即使预期中考虑了侯世达定律。”

2017/03/20 09:12:02

  假若为学问为事业而忘却生活,那种学问和事业在人生中便失其真正意义与价值。”

2017/03/20 20:38:38

  “心流”(flow)这个由心理学家齐克森米哈里创立的概念已经渐渐为大众所熟知,它是指人全情投入于一件事中的状态。在心流发生时,人心无旁骛、全神贯注,甚至忘记了自己的存在,忘记了时间的流逝,在这个过程中,人会获得很大的满足感。

2017/03/20 20:40:43

  一个成熟的人,他的标准来自他的内心,而大多数人,却受环境所左右。

2017/03/20 20:46:25

  这种现实的选择困境,可以用决策心理学中的“规则遵循理论”来解释。这个理论认为,人们在作出一个决定时,往往是基于自己的身份,并依循自己身份所应遵守的规则来进行判断,这种做法使个体的行为与周围的社会情境可以更好地适应,所以称为“适当性逻辑”。

2017/03/20 21:15:33

  在东方文化下,“身份”更多是作为社会和外部的期望加之于个人身上的,而不是个人自由探索的结果。

2017/03/20 21:16:23

  牛人总是在前瞻性思维和总结性思维上都非常出色。他们既能提前设想未来事件中可能出现的方方面面的情形,又能从已经发生的行动中加以反思,因此他们总是比一般人想得更加深入和周全。

2017/03/21 21:06:24

  多线程工作,首先需要一段专注不受干扰的时间,完成工作中最核心部分的思考。

2017/03/21 21:16:56

  行动后要及时反思,并梳理这件事情的“反应链”,特别关注其中发生的意外现象。

2017/03/21 21:17:12

  只有最后能够作用于现实的学习,才是唯一有效的学习。

2017/03/21 21:18:06

  以既成知识为核心的学习,学习者扮演的只是一个“吸纳者”或者“搬运者”的角色,他们把外部的知识经过消化后搬运到头脑内部,只不过完成了知识在不同载体间的传递。

2017/03/22 22:17:06

  “直接传递模式”,即认为学习就是简单、线性的“传递—接收”的过程,学习的目标只是用静态的知识把头脑装满。

2017/03/22 22:18:50

  问题可以帮助我们形成长期的、一贯的思考路径。问题构成了学习的连续性。当没有问题引导时,可能我们常常只是零散、随性地去涉猎学习材料,去捕获一些不相干的知识。这种学习的结果是得到一盘知识的沙砾。而在问题牵引下的学习,则是连续不断地构筑着知识之间的联系,使它们以一种有意义的方式连缀在一起。

2017/03/22 22:27:16

  教育心理学新近的观点认为,对某一事物的知识掌握,应区分了解(knowledge about)和知晓(knowledge of)两个层次。

2017/03/22 22:36:05

  你掌握了多少知识,并不取决于你记忆了多少知识以及知识的关联,而是取决于你能调用多少知识以及知识关联。

2017/03/22 22:51:25

  把知识当成一项技能来学习。

2017/03/22 22:55:03

  知识的操练,既是一种调用和提取,也是一种主动的建构,更是一种创造性的综合,它是深度学习过程中必不可少的一环。

2017/03/23 20:40:22

  知识的操练,既是一种调用和提取,也是一种主动的建构,更是一种创造性的综合,它是深度学习过程中必不可少的一环。知识的操练迫使我们对已有的知识进行更加深入的审视,对现实的情境和问题进行更加细微的观察,并且致力于创造两者之间的关联。它使我们不再固守书本,不再去做僵化的记忆,而是让我们赋予知识以灵性,以更好地适应这个变化莫测的世界。

2017/03/23 20:40:40

  学习,应该以学习者心中的问题为中心,让问题引导着我们去探求答案。 问题的提出,需要基于已有的知识体系,并通过问题将新、旧知识串联起来。 通过深入事物内部的解码,我们可以发现事物深厚的内涵,有机会掌握其中精巧细微的技法,不断重建自己的知识体系。 掌握了多少知识,并不取决于记忆了多少知识以及知识的关联,而是取决于能调用多少知识以及知识关联。 求知分为三个层级:信息、知识和技能。技能是学习的终点,信息和知识是迈向这个终点的路与桥。 对一个现实问题的解决,或者对一个现实情境的洞察,往往需要同时调用不同知识谱系上的知识。 学会有意识地去分析不同领域知识之间的潜在关联,通过不同知识的迁移、印证、互补,获得启发,甚至生成新的思想或者发现。

2017/03/23 20:56:22

  年轻人容易犯的毛病是热情有余,少了一些冷静踏实;急于求成,少了一些耐心细致。

2017/03/27 09:03:00

  努力的第一个秘诀在于“舍弃”。有舍,方才有得。

2017/03/27 09:05:20

  所谓杠铃策略,就是同时采取两种极端行动,一方面,也就是在大多数投入中,采用能够抗拒负面“黑天鹅”风险的强韧结构,也就是专注在一个既定的领域进行学习;另一方面,拿出较小的一部分时间,进行积极大胆的探索和尝试,以博取迎接正面“黑天鹅”事件的机会。

2017/03/27 09:10:56

  必要难度”(desirable difficulties),通俗点讲,就是学习的时候,要给自己增加一些难度,这对提升学习效果是非常必要的。

2017/03/27 09:14:51

  “必要难度” 理论充分说明了,勇敢地去迎接有难度的挑战,对个人才能的提高非常有益。而要做到这一点,有个关键的操作要领是:不要满足于完成“标准动作”。

2017/03/27 09:17:21

  如果我能长期坚持去做一件事,一定是这件事带给我的丰盈感和满足感超过了我的所有付出,一定是这件事日日夜夜萦绕在我的心头让我欲罢不能,一定是这件事唤起了我内心深处最强烈的兴趣。也就是说,赐予我力量的,是激情的驱动,而不是意志力的鞭策。

2017/03/27 21:26:46

  我们有根据自己的内心需要独立选择自己人生、不受外部影响的权利。

2017/03/28 21:11:50

  当缺少可以让内心安稳下来的独立标准时,每个人只能随波逐流。而只有逃脱献媚于他人的牢笼,才能真正获得自由。

2017/03/28 21:17:32

七堂极简物理课

Author: 【意】罗韦利著;文铮,陶慧慧译

  空间不再是一种有别于物质的东西,而是构成世界的“物质”成分之一,一种可以波动、弯曲、变形的实体。我们不再身处一个看不见的坚硬框架里,而更像是深陷在一个巨大的容易形变的软体动物中。

2017/03/28 21:27:51

  当一个大恒星燃烧完自己所有的燃料(氢)时,它就会熄灭。残留的部分因为没有燃烧产生的热量的支撑,会因为自身的重量而坍塌,导致空间强烈弯曲,最终塌陷成一个真真正正的洞。这就是著名的“黑洞”。

2017/03/28 21:30:50

  无论是欣赏艺术,还是领悟科学,我们最终得到的将是美的享受和看待世界的全新视角。

2017/03/28 21:33:43

  量子力学和粒子实验告诉我们,世界是物体连续的、永不停歇的涌动,是稍纵即逝的实体不断地出现和消失,是一系列的振荡,就像20世纪60年代时髦的嬉皮世界,一个由事件而非物体构成的世界。

2017/03/29 20:56:16

  只有存在热量的时候,过去和未来才有区别。能将过去和未来区分开来的基本现象就是热量总是从热的物体跑到冷的物体上。

2017/03/29 21:11:34

重口味心理学

Author: 姚尧

  精分、行为与人本,堪称心理学上三大主流门派,三国鼎立!

2017/04/26 21:02:45

  “本来可以主动地逃避,却绝望地等待痛苦的来临,这就是习得性无助。”

2017/04/26 21:12:25

  本我”、“自我”和“超我”的三我人格结构理论,

2017/04/27 20:47:44

  每一个和我们爱过的人,当他们不再爱了选择离开,无论当时分手的过程是平静还是惨烈,事后我们都应该冷静下来学会感恩,因为对方也是用他们的生命时光陪伴你走过了一段人生历程,这条路上原本你是独自一人的,而他们的降临不管带来幸福也好痛苦也罢,都是上天给予的礼物,因为从幸福与痛苦中你才领悟了人生真实的模样……

2017/04/28 20:23:18

  性欲论中的“性”其实是一种潜在的能驱使人们寻求快感的能量,是种动力,power!我给这种power起了一个名字,就叫:力比多!

2017/04/28 20:44:35

  长期以来,人们一直习惯地认为,求生是人的一种基本本能,而现在精神分析学家却发现,求死也是人的一种基本本能。如果说生的本能是让无生命的物体变为有生命的物体,那么死亡本能就旨在使人回到生命诞生之前的无机状态,一切皆空。

2017/04/29 22:44:36

  异装癖(性欲倒错)的主要目的是为了得到性满足,而性别认定障碍(性别倒错)的主要目的不是性欲方面的,而是希望公开地、完全地以异性的方式生活。

2017/05/01 16:56:14

  人之所以痛苦,是因为追求了错误的东西,我们在追寻欢乐的过程中往往不是忘了精神的存在,去追求肉体的满足,就是忽略了肉体的存在,而追求精神的满足。人的不安定和痛苦就往往来自这种精神与肉体的冲突。

2017/05/05 20:55:14

  人们在一味追求精神欢娱的过程中不顾肉体安危而酿成的苦果——成瘾。

2017/05/05 20:56:14

哇,历史原来可以这样学1

Author: 林欣浩

  生物学中有个“林德曼效应”:生物A被生物B吃了,A身体里的能量有多少能被B吸收呢?——只有10%~20%,其他的能量都被浪费掉了。

2017/05/09 21:14:16

  目前发现的世界上最早的青铜器文明,是两河流域(今天的伊拉克一带)的苏美尔文明,比夏朝开国的时间还要早两千多年,那时的中国地区还处在新石器时代。不仅是青铜器,包括书写、历法、宗教、建筑、数学、艺术等等文化,苏美尔文明都远比当时的中华文明更先进。

2017/05/10 20:59:43

  “礼制”的本质,是通过道德的手段来指定一种秩序,这是一种比暴力更高效的统治手段。

2017/05/10 21:06:30

  读书为的是把人类唯一的家底——无数天才积累了几千年的知识攥在自己的手里,变成自己的力量。这是我们让自己变强大的最简单的办法。

2017/05/11 21:16:55

  礼教、道德的目的是要求人们遵守规矩,本质是要束缚人。而艺术之所以吸引我们,是因为在艺术的世界里,我们可以不受现实的束缚,追求无限的自由。

2017/05/11 21:23:00

  我们学习书上的知识是为了用人类的知识武装自己,让自己变得更强大。这其实只是读书最低等的作用,而高等的作用,是通过文艺作品感受古今中外无数天才们自由的精神世界,最终实现自己的精神自由。 这才不枉为人。

2017/05/11 21:28:27

  吾生也有涯,而知也无涯,以有涯随无涯,殆己。

2017/05/11 21:40:49

万万没想到:用理工科思维理解世界

Author: 万维钢

  所谓价值观无非就是给人和事贴或好或坏的标签。文人把弘扬真善美和鞭挞假恶丑当成自己义不容辞的责任。

2018/05/10 10:34:38

  确认偏误”(confirmation bias)。如果你已经开始相信一个东西了,那么你就会主动寻找能够增强这种相信的信息,乃至不顾事实。一旦我们有了某种偏见,我们就无法改变主意了

2018/05/10 11:27:05

  可是如果人人都只接收符合自己观点的信息,甚至只跟与自己志同道合的人交流,那么就会形成一个“回音室效应(echo chamber effect)”。人们的观念将会变得越来越极端。

2018/05/10 00:06:29

薛兆丰经济学讲义

Author: 薛兆丰

  你会发现人类面临着四大基本约束:东西不够,生命有限,互相依赖,需要协调。人类社会的种种现象和制度安排,无一不是为了适应这四种基本约束而衍生出来的

2019/01/21 12:01:33

  当我们讨论公正的问题时,背后的含义往往是:这是符合效率标准的。往往是那些让社会里每个人都有积极性去积累财富的规则,或者那些让社会能够健康发展的规则,才是公正的规则。也就是说,因为有效,所以公平

2019/01/21 12:30:00

  经济学是一门研究比较和选择的学问。

2019/01/21 12:31:37

  阿尔钦就为经济学找到了一个坚实的研究基础——经济学关心的是存活的条件。也就是说,经济学研究的是在什么样的情况下,人能够存活下来,而如果条件发生了改变,人们存活的情况又会发生怎样的改变。

2019/01/22 12:05:07

  密的重要建议是:不要搞混了,不要在家庭、朋友圈里斤斤计较,过分讲究市场规则,也不要在市场上强求陌生人表现出不切实际的爱心。

2019/01/22 12:11:47

  斯密的重要建议是:不要搞混了,不要在家庭、朋友圈里斤斤计较,过分讲究市场规则,也不要在市场上强求陌生人表现出不切实际的爱心。

2019/01/22 12:11:52

  我们说成本是放弃了的最大代价,是“所有放弃了的选项当中价值最高的那个”,但问题是,所有放弃了的选项,不是没实现吗?既然没实现,我们怎么知道自己放弃了什么东西?

2019/02/17 23:40:13

  成本是放弃了的最大代价

2019/02/17 23:47:46

  感受不是我们的成本,只有我们需要放弃的最大代价才是成本。而这个成本有多大,是由什么决定的呢?

2019/02/17 23:52:35

  负面感受不是我们的成本,只有我们需要放弃的最大代价才是成本。而这个成本有多大,是由什么决定的呢?

2019/02/17 23:53:00

  货币成本并不是全部成本。做决定的时候,我们要盯住全部成本,而不只是钱

2019/02/19 23:41:34

  凡是盈利都是意外,英文叫作windfall profit,也译成“横财”。横财是在我们意识到这个商品的价值跟预期不一样的瞬间产生的。

2019/02/19 23:48:12

  无论是盈利还是亏损,在经济学里,都是意外发生的。每当发生意外,我们就重新调整资源的未来估值,而资源使用的成本,就要按照这个新的估值来计算。所以,一旦出现盈利,资源的使用成本就会提高;一旦出现亏损,资源的使用成本就会下降。

2019/02/19 23:50:08

  关于产品价格的形成过程,存在两种背道而驰的理论,一种叫成本决定论,一种叫供需决定论。成本决定论容易被人接受,但它的逻辑是错的;供需决定论与事实相符,但它却是反直觉的。

2019/02/19 23:52:18

  合理的经济逻辑关系刚好反过来。不是产品的原材料决定了产品的价格,而是产品的供需关系决定了产品的价格。而最终产品的价格再反过来,决定它上面一层又一层、一环又一环的原材料价格。

2019/02/19 23:54:11

  经济学里有一个非常重要的概念,叫“租”。所谓租,就是对资产的付费。这里所说的资产含义非常广,包括土地、矿山、人的才能、发明创造,甚至是特权。只要能够带来收入的资源都叫资产,而对资产的付费就叫租。

2019/02/19 23:59:11

  经济学界,“寻租”这个词则专指后者的行为,即那些向政府争取优惠政策,让自己得到好处,同时导致社会总资源发生耗散的行为。

2019/02/22 12:47:36

  只要能够带来收入的资源都叫资产,而对资产的付费就叫租。照理说,寻找能够带来收入的资产,是人类共同的行为。但图洛克指出,这些行为可以明显地分为两类。其中一类,是类似医生研制出治疗癌症的药物、歌星迈克尔·杰克逊改善自己舞姿的行为;而另外一类,是好像某个年轻人花了十年青春在官僚机构里谋取了一份正式的闲职的行为,或者像某家公司通过公关手段拿下垄断经营权的行为。

2019/02/22 12:47:51

  社会成本问题在经济学中有着非常重要的政策含义。人们只有理解了社会成本问题,才能顺应社会和市场的基本运行规律,制定出因势利导的经济政策。

2019/02/22 12:48:47

  人们常常把“权利的行使应以不伤害别人的权利为界”这句格言,作为解决纠纷的金科玉律。但问题是,现实生活中,纠纷双方都可以拿这句格言替自己辩护。

2019/02/22 12:53:11

  科斯定律最流行的版本是:在交易费用为零或足够低的情况下,不管资源最初的主人是谁,资源都同样会流到价值最高的用途上去。用大白话来说,就是“谁用得好就归谁”。

2019/02/22 01:01:51

  这就是科斯定律的基本含义:我们必须用持平的眼光看待污染问题。因为这不是一方污染另外一方的问题,而是双方或者多方争用稀缺资源的问题,我们要做的就是在现代化生活和环境污染之间取得一个平衡。

2019/02/22 01:07:43

  经济学家张五常曾经给交易费用下过一个非常广泛的定义:凡是在一个人的社会里不存在,而在多个人的社会里存在的成本,就叫交易费用

2019/02/25 12:33:03

  我们说科斯定律最流行的一个版本是:在交易费用为零或足够低的情况下,不管产权归谁,资源都会落到最有价值的用途上。

2019/02/25 12:33:17

  如果交易费用为零,在任何一个社会里,我们的资源、权利、责任怎么分配都无所谓,因为我们可以重新达成协议,资源可以重新调拨,重新落到使用价值更高的人手上。 但现实生活中交易费用很高,很多资源是没有办法落到使用价值更高的人手里的。因此,初始的产权分配、制度法规、风俗习惯,乃至道德规范,就都变得很重要了。我们可以把社会上通行的制度、习俗和道德规范,都看成为了减少重复商议的成本而逐渐固定下来的解决纠纷的办法。

2019/02/25 12:41:06

  根据阿尔钦的定义,“一个人对一件商品的个人估值,是他为了得到这件商品所愿意支付的其他商品的最高数量”。

2019/02/26 12:49:13

  个人主义的主观价值论(individualistic subjectivism),即所有的个人估值都源于个人的主观判断。

2019/02/26 12:51:54

  人估值不是以个人的愿望为基础,而是以他所愿意放弃的其他商品的数量

2019/02/26 12:52:17

  个人估值不是以个人的愿望为基础,而是以他所愿意放弃的其他商品的数量来计算的。

2019/02/26 12:52:24

  所谓的客观价值论,是说世界上所有的物品,都有客观的、内在的、不以人的意志为转移的价值,而价格只是围绕这个本质的、客观的价值上下波动的一个现象。 而主观价值论则是指所有的物品,本身并没有什么内在的价值,只有人对它的判断,人觉得它有价值,它就有价值。

2019/02/26 12:53:59

  主观价值论由于有更好的解释力,能更好地指导生产,所以得到了许多经济学家的大力支持。这些经济学家往往都声称自己是“个人主义的主观价值论者”

2019/02/26 12:56:28

  新增”带来的“新增”,就叫边际

2019/02/26 01:02:03

  那么到底什么叫边际?边际就是“新增”带来的“新增”。 例如,边际成本就是每新增一个单位产品所需要付出的新增成本;边际收入是每多卖一个产品能够带来的新增收入;边际产量是每新增一份投入所带来的新增产量;边际效用是每消耗一个单位的商品所能带来的新增享受

2019/02/26 01:02:09

  边际效用递减定律了。这个定律说的是,在单位时间内,随着人们消耗的某种商品的数量不断增加,消耗这种商品所能带来的新增享受迟早都会下降

2019/02/26 01:02:40

  一般来说,当我们把口袋里有限的钱,按“边际效用等于边际成本”的原则,分别用来购买不同的产品时,我们从这些不同的产品那里获得的总收益,就会达到最大。

2019/02/26 01:07:03

  资源是有限的,如何最有效地利用有限的资源,使其获得最高的效用?办法就是把资源分摊到不同的用途上,并确保资源在这些不同用途上获得的边际效用都趋于相等;如果出现不等,那就应该不断地把更多的资源挪用到边际效用较高的用途上,直到资源在这种用途上带来的边际效用下降到与其他用途的边际效用相等为止。这就叫边际平衡的概念。如果一个人这么做了,那么他得到的总效用就会达到最大

2019/02/26 01:09:22

  需求第一定律是说:当其他情况不变时,只要价格提高,商品的需求量就会减少;价格降到一定程度,需求量就会增加。

2019/02/26 01:09:41

  一个人对一件商品的个人估值,跟他为了得到这件商品所付出的代价之间是有很大差距的。这个差距,我们称之为“剩余”。 例如,冰箱里

2019/02/26 01:22:00

  我们知道,需求曲线上任何一个点,都代表一个人对这件商品在这个单位上面的个人估值,也就是说,他愿意为了获得这个单位的服务所愿意付出的最大代价。 但是,一个人对一件商品的个人估值,跟他为了得到这件商品所付出的代价之间是有很大差距的。这个差距,我们称之为“剩余”

2019/02/26 01:22:08

  需求第二定律是说:需求对价格的弹性,和价格变化之后流逝的时间长度成正比。也就是说,随着时间的推移,需求对价格的弹性会增加。

2019/02/27 12:23:41

  需求对价格的弹性,就是需求量随商品价格的变动而变动的程度,它等于需求量的变化百分比除以价格变化的百分比。其含义是:每当价格变化百分之一,需求量会变化百分之几。如下所示。

2019/02/27 12:24:47

  一件商品是奢侈品还是必需品,完全取决于价格

2019/02/27 12:34:28

  需求第二定律是说,随着时间的推移,需求对价格的弹性会逐渐增大。它的意思是,当出现新的情况、新的冲击时,人们寻找替代方案的范围一开始可能没那么大,但是随着时间的推移,他们选择替代方案的空间会越来越大,能够找到的对策就越来越多

2019/02/27 12:43:28

  这就是需求第三定律的含义。它的意思是说,精选品和普通品之间的价格本来是有较大差距的,但是加上一笔附加费以后,它们的差距就缩小了,精选品显得便宜了。而附加费越大,这种效果就越显著,精选品就显得越便宜。

2019/03/03 02:01:39

  就是需求第三定律的含义:每当消费者必须支付一笔附加费时,高品质的产品相对低品质的产品就变得便宜了,这笔附加费越高,高品质产品相对就越便宜。正因为这样,我们也把这个定律叫作“好东西运到远方去定律”。

2019/03/03 02:04:10

  经济学关心的是事与愿违的现象,而不是事与愿符的现象

2023/02/09 12:03:22

  我们把经济学建立在“稀缺”这个基础上。但稀缺并不是一个假设,而是一个基本事实。稀缺是人类始终面临的基本约束,只要我们活在这世上,就必须面对。

2023/02/09 12:23:22

  稀缺必然导致歧视。我们不应该问要不要歧视,而是要问应该如何歧视

2023/02/12 12:06:04

  我们会明白歧视造成的后果越严重,人们就越有积极性去减少歧视。如果歧视带来的后果不太严重,人们就会很随便地歧视别人。

2023/02/12 12:08:35

  当我们不需要付出多少代价时,就会纵容自己歧视的习惯;当我们要付出很高代价时,就会节制自己歧视的习惯

2023/02/12 12:09:20

  沉没成本,就是指那些已经发生但不可收回的支出。当我们没办法再收回、没办法再放弃时,就不存在成本。凡是提到成本,我们一定是向前(未来)看,而不是向后(过去)看的。所以,沉没成本不是成本。

2023/02/12 12:20:01

  第一,负面的感受不是成本;第二,你的成本由别人决定。

2023/02/12 12:23:19

  盈利提高了资源未来使用的成本。

2023/02/20 12:28:51

  在那一瞬间,亏损是意外的,是没有想象到、预料到的,英文叫windfall loss,也译成“横祸”。

2023/02/20 12:30:05

  根据会计学,产品最终的价格,等于原材料成本的总和,乘上一个合理的利润率。这就是所谓的“成本决定论

2023/02/20 12:33:09

  谁避免意外成本最低,谁的责任就最

2023/02/23 12:08:00

  弹性大于1,指的是奢侈品;弹性小于1,指的是必需品

2023/02/27 12:23:33

  税负是双方共同承担的;双方各付多少,取决于需求者和供应者双方的相对弹性,谁的弹性低,谁对这份交易的需求更迫切,谁就付得多一点。

2023/02/27 12:35:39

  根本障碍之一,是人际效用不可比较

2023/03/01 12:27:32

  计划经济遇到的第三个根本困难,是奖惩很难恰如其分。

2023/03/01 12:30:49

  边际平衡说的是,我们手上的钱有限,每一元钱应该花在给我们带来收益最大的那件商品上。钱一点点花出去,最后我们在每一种商品上得到的边际效用就是平衡的。这样,我们手上有限的钱,买到的商品、给我们带来的效用,就能够达到最大化。这就是边际平衡的概念。

2023/03/01 12:32:12

  格的三个作用:

2023/03/01 12:36:50

  价格的三个作用:

2023/03/01 12:36:56

  只有一种竞争方式是例外。认钱,按照出价高低来竞争,就不一样。如果凡事都要用出价高低来竞争,人们就会努力地去赚钱

2023/03/06 12:20:21

  从公平的角度看,出价高低并不比别的分配方式更公平。但是从效率的角度,从社会财富积累的角度,从如何减少竞争带来的无谓损失的角度看,出价高低比别的竞争方式更有效率,它直接带来了社会财富的高速增长

2023/03/06 12:21:12

  短缺是指因为价格受到了抑制,人们仅仅用出价的办法买不到这种商品,而只有采取其他的竞争方式才能得到这种商品的情形

2023/03/06 12:23:42

  短缺不是供应的减少,而是指在商品的价格受到抑制的情况下,人们不仅要通过出价的方式去竞争,还需要依靠其他非价格的方式去竞争的一种特殊现象

2023/03/06 12:24:13

  ,过剩不是供给过多,而是商品的价格被人为地抬高,以至卖家必须搭配其他的竞争手段或服务,才能把商品卖出去的现象。过剩是价格被人为拔高的结果。

2023/03/06 12:26:11

  过剩不是供给过多,而是商品的价格被人为地抬高,以至卖家必须搭配其他的竞争手段或服务,才能把商品

2023/03/06 12:26:15

  过剩不是供给过多,而是商品的价格被人为地抬高,以至卖家必须搭配其他的竞争手段或服务,才能把商品

2023/03/06 12:26:19

  过剩不是供给过多,而是商品的价格被人为地抬高,以至卖家必须搭配其他的竞争手段或服务,才能把商品卖出去的现象。过剩是价格被人为拔高的结果。

2023/03/06 12:26:27

  价格管制必然导致资源价值的耗散

2023/03/12 23:58:21

  人是追求损失最小化的动物

2023/03/12 23:59:34

  价格管制越严重,价值耗散就越大,人们设法绕过政府管制的积极性也越大;而政府围堵的力度越大,人们采用的对策就越迂回,其中白白浪费掉的竞争成本也越大

2023/03/13 12:01:53

  让人类有别于动物,长期展开迂回竞争,从而积累大量财富的原因之一,是人类社会逐渐建立起了精致的权利体系

2023/03/18 12:43:21

  产权是一种通过社会强制而实现的、对某种经济物品的多种用途进行选择的权利

2023/03/18 12:44:26

  权利是通过社会强制而实现的,是别人授予我们的;不是我们自己认为有就有,而是别人认为我们有才有;要别人愿意出来保护我们行使的自由,才能叫权利。这是权利的特征

2023/03/18 12:44:57

  产权的兴起有两个动力,一个是外部性,一个是人口的集聚

2023/03/19 12:00:50

  由于产权的明确、产权的行使和保护都需要耗费成本,如果必要性不大,就不需要进行各种产权安排

2023/03/19 12:01:16

  只有当权利的安排带来的好处足够大时,人们才去考虑怎样界定产权,怎样才能行使和保护产权。

2023/03/19 12:01:30

  产权的三个要素或者三个重要环节——使用权、收益权和转让权。三权相加就是一个完整的产权。

2023/03/19 12:06:00

  产权保护有三个基本原则——财产原则、责任原则和不可转让原则。这三个原则不是传统经济学的内容,而是法律经济学这门交叉学科的内容

2023/03/21 23:57:40

  什么叫财产原则呢?意思是:一个人想要剥夺别人的产权,只有一个办法,就是向这个人付费,付到他愿意放弃为止。如果是通过这种方法把产权从别人手里拿过来

2023/03/21 23:59:35

  么叫财产原则呢?意思是:一个人想要剥夺别人的产权,只有一个办法,就是向这个人付费,付到他愿意放弃为止。

2023/03/21 23:59:44

  责任原则的意思是:当一个人侵害了别人的产权以后,侵害者就要向产权所有者赔偿,但是赔偿的金额不是由所有者确定,而是由第三方确定。

2023/03/22 12:00:01

  不可转让原则,顾名思义,就是政府禁止所有权人把他所拥有的资产卖给别人

2023/03/22 12:00:54

  我们在保护财产权时,到底是用财产原则还是责任原则,很重要的一个权衡标准,就是看交易费用

2023/03/22 12:06:37

  采用责任原则的一个核心理由是,采用财产原则来保护产权的成本太高,而伤害已经造成,这时只能由第三方对伤害做一个赔偿定价。这样的方式也可以延伸到合同法当中的违约赔偿上

2023/03/22 12:08:14

  在经济学里,公用品和私用品有非常独特的含义。私用品最关键的含义是一个人用,别人就不能用;相反,一个人用的同时不影响别人使用的商品,叫公用品。

2023/03/27 12:22:13

  在经济学教科书里,一个人能用,别人也能用,我们称之为“没有竞争性”;一个人用了别人就不能用,我们称之为“有竞争性

2023/03/27 12:31:56

  在经济学教科书里,一个人能用,别人也能用,我们称之为“没有竞争性”;一个人用了别人就不能用,我们称之为“有竞争性”

2023/03/27 12:32:03

  在经济学教科书里,一个人能用,别人也能用,我们称之为“没有竞争性”;一个人用了别人就不能用,我们称之为“有竞争性”。有没有竞争性,是区分公用品和私用品的一个关键标准。

2023/03/27 12:32:26

  。所谓的排他性,是指一件商品在实际使用时,物主能不能很方便地把其他的使用者排除在外。如果能比较方便地做到,就说它有排他性;不方便做到,就说它不具有排他性

2023/03/27 12:33:20

  。所谓的排他性,是指一件商品在实际使用时,物主能不能很方便地把其他的使用者排除在外。如果能比较方便地做到,就说它有排他性;不方便做到,就说它不具有排他性

2023/03/27 12:33:25

  所谓的排他性,是指一件商品在实际使用时,物主能不能很方便地把其他的使用者排除在外。如果能比较方便地做到,就说它有排他性;不方便做到,就说它不具有排他性

2023/03/27 12:33:33

  费雪认为,利息是人类社会最古老的现象之一,它起源于时间,起源于人的耐心。只要与时间有关的现象,都涉及利息。而根据时间的维度,世界上所有的产品、商品、资源,都可以简单地划分为两种:一种叫易耗品,一种叫耐用品

2023/03/28 12:20:08

  不确定性|时间偏好带来的回报 第058讲 | 易耗品与耐用品 从这章开始,我们介绍时间和耐心的作用。我们知道,每个人生活在世界上,都至少面临四种最基本的约束,那就是:东西不够、时间有限、互相依赖、需要协调。 之前我们讲的内容其实都围绕着第一个中心,就是东西不够。在东西不够的情况下,我们讲人与人之间怎么进行财富分配,怎么进行交换,怎么对财产进行所有权管理。我们讲这一切时,好像没有时间的存在,一切都好像在一瞬间完成的一样。 现在,我们要把世界观延展到一个新的维度,那就是时间的维度。人们通常所说的现货和期货,就是在时间维度上进行区分的。我们把今天的货物叫现货,明天的货物叫期货。现货跟期货如何交换,以实现更大的幸福,这是我们这一章要讨论的问题。 费雪及其名著《利息理论》 要讨论时间的维度,就不得不提一部重要的著作——美国经济学家欧文·费雪(Irving Fisher)的经典名著《利息理论》(The Theory of Interest , 1930)。 事实上,关于利息理论的各种概念,比如收入、回报率和利润等,在费雪出版这部著作以前就已经存在了。但这些概念都非常含糊,容易让人望文生义,以至利息理论一直都不太清楚。这就好比所有的珍珠都已经放在桌面上了,但就是没有人能够把它们串起来一样。 直到费雪出现,这个问题才得以解决,利息理论才清晰起来。费雪的研究以这部著作为高峰,将利息理论几乎所有的问题都解释清楚,从而坚实地奠定了利息理论的基础。 费雪认为,利息是人类社会最古老的现象之一,它起源于时间,起源于人的耐心。只要与时间有关的现象,都涉及利息。而根据时间的维度,世界上所有的产品、商品、资源,都可以简单地划分为两种:一种叫易耗品,一种叫耐用品。 易耗品 所

2023/03/28 12:22:11

  费雪认为,利息是人类社会最古老的现象之一,它起源于时间,起源于人的耐心。只要与时间有关的现象,都涉及利息。而根据时间的维度,世界上所有的产品、商品、资源,都可以简单地划分为两种:一种叫易耗品,一种叫耐用品。

2023/03/28 12:22:37

  所谓易耗品,就是能一次性消费完毕的物品

2023/03/28 12:22:42

  耐用品是它提供的服务、发挥的功能,必须在一个时间段内慢慢发散出来。要花费较长时间才能享受的物品,叫耐用品

2023/03/28 12:23:06

  一种耐用品,只有在时间的维度上才能体现它的价值,发挥它的功能。这是耐用品的含义。任何一种能够带来收

2023/03/28 12:24:46

  一种耐用品,只有在时间的维度上才能体现它的价值,发挥它的功能。这是耐用品的含义。任何一种能够带来收入的资源、本领或者禀赋,都是一种耐用品。

2023/03/28 12:24:50

  因此只要其他情况不变,人们总是希望早一点消费,因为早一点消费是确定的消费,晚一点消费就是不确定的消费。所以有时经济学家也喜欢将“不耐”称为“确定性偏好

2023/03/28 12:27:04

  因此只要其他情况不变,人们总是希望早一点消费,因为早一点消费是确定的消费,晚一点消费就是不确定的消费。所以有时经济学家也喜欢将“不耐”称为“确定性偏好”

2023/03/28 12:27:15

  任意一宗现货跟期货的交易之所以存在利率,关键是人们都有时间偏好,人们都愿意早一点消费,而不愿意晚一点消费。而那些想要换取现货的人为了说服别人,让他们推迟消费、接受期货,就只有一个办法,对他们进行补偿。补偿就是利率的基础。

2023/03/28 12:30:13

  未来越是不确定,补偿就越大;消费推迟得越久,补偿也越大。不耐是利率的基础,未来越是不确定,接受期货的人所要索取的补偿就越大,这时候利率就越高。

2023/03/28 12:31:17

  贴现率就是未来价值(期值)转化为当前价值(现值)的打折程度

2023/03/29 12:45:08

  贴现率的变

2023/03/29 12:46:27

  贴现率的变化

2023/03/29 12:46:54

  贴现率的变化影响人们对未来投资的决策

2023/03/29 12:46:59

  投资其实就是消费,投资只不过是在时间维度上的平衡消费。这句话非常精彩,一下子就将投资和消费打通了。它们是一回事,只不过是人们为了追求最大的收益,在时间上做的一个平衡而已。

2023/04/03 02:19:16

  我们追求的不是一刹那的最高幸福,我们追求的是幸福总量的最大化

2023/04/03 02:20:50

  资产的现值就等于预期的未来收入流的折现和。

2023/04/03 02:25:45

  法玛的有效市场假说要告诉我们的是,资本市场没有泡沫,资产价格的波动非常有效,已经准确反映了所有可得的信息

2023/04/03 02:33:16

  经济学家尤金·法玛(Eugene F. Fama)后来把这个思想系统地表述出来,提出了“有效市场假说”(efficient market hypothesis)理论。这个理论的核心含义是,资产的价格已经反映了关于资产内在价值的所有可得信息,所以它们的价格就是最有效的价格。

2023/04/03 02:33:30

  在竞争之下,任何资源所能够获得的回报,会接近于这个资源本身所能带来的边际收入。

2023/04/03 02:38:55

  我们在保险公司投保时,投保的事项必须符合三个基本前提条件:事件的概率性、概率的不相关性和概率的独立性

2023/04/03 02:45:34

  风险。风险是我们生活的这个世界特有的,没有人能够彻底消除风险。

2023/04/03 03:03:26

  这里要指出的一点是,期货合同本身并不能够减少风险。风险是我们生活的这个世界特有的,没有人能够彻底消除风险。期货合同起的一个重要作用就是重新分配风险。有些人喜欢风险,让他们承担风险;有些人不喜欢风险,让他们少担风险。

2023/04/03 03:03:33

  这里要指出的一点是,期货合同本身并不能够减少风险。风险是我们生活的这个世界特有的,没有人能够彻底消除风险。期货合同起的一个重要作用就是重新分配风险。有些人喜欢风险,让他们承担风险;有些人不喜欢风险,让他们少担风险。在这种重新分配当中各得其所,他们的愿望都得到了满足。

2023/04/03 03:03:45

  因此,期货市场不是一个零和游戏——所谓零和游戏,意思是整个社会总的幸福程度没有提高。相反,期货市场是一个正和游戏——人们经过一系列的制度安排、重新分配风险以后,每个人的幸福感都得到了提高

2023/04/03 03:05:29

  在一个社会里,每个个体如果把有限的资源,包括时间和精力,只用来生产对他们来说机会成本比较低的那些产品,然后跟别人进行交换,这样整个社会产品的总价值就能达到最大,而且每一个个体的境遇都能得到改善,而不论他们的绝对生产能力是高还是低。

2023/04/07 12:23:03

  比较优势原理,最早是大卫·李嘉图(David Ricardo)在《政治经济及赋税原理》(On the Principles of Political Economy and Taxation , 1817)中提出来的。 这个原理的含义是说:在一个社会里,每个个体如果把有限的资源,包括时间和精力,只用来生产对他们来说机会成本比较低的那些产品,然后跟别人进行交换,这样整个社会产品的总价值就能达到最大,而且每一个个体的境遇都能得到改善,而不论他们的绝对生产能力是高还是低

2023/04/07 12:23:14

  李嘉图的比较优势原理的核心,讲的是自己跟自己比,总有效率比较高、成本比较低的生产项目,专注这种生产项目然后跟别人进行交换,整个社会的财富就能够增加,而个人的财富也能够增加

2023/04/07 12:26:10

  亚当·斯密的分工协作原理的核心是:哪怕是天生禀赋一样的人,只要专注某个细分领域的生产,就能够减少在工作当中切换往返的成本,能够熟能生巧,能够让机器的替代成为可能。

2023/04/07 12:26:21

  完全竞争状态是指:市场里有数不清的买家和卖家,交易的都是同一种商品,任何一位买家或者卖家,都不能通过控制买卖量来影响价格,因为他个人的买卖量跟整个市场的买卖量相比是微不足道的。与此同时,任何一位买家或者卖家,都可以随时进出市场;市场的信息也是完全自由流通的,大家都知道他们要买卖的商品是什么,价格是多少。整个市场的交易费用也很低,没有讨价还价、尔虞我诈的过程

2023/04/07 23:10:22

  跟完全竞争状态相对的另外一种状态,我们称之为“不完全竞争状态”。它是指市场上每一位卖家所卖的产品,在品质上都不一样。当然,我们也假定,在这样的市场里,信息不完全流通、不完全对称,交易费用是正的,存在讨价还价、尔虞我诈的现象。

2023/04/07 23:11:06

  完全竞争状态对应着受价者,不完全竞争状态对应着觅价者。而在真实生活当中,只有极个别的市场符合完全竞争的模式,而其他大量的场合都处于不完全竞争的状态。

2023/04/07 23:14:11

  第一种叫完美的价格歧视,也就是卖家对消费者所消费的每一个单位产品,都分别收取最高价格。

2023/04/07 23:23:06

  “二级价格歧视”,也就是对不同的购买量收取不同的价格,多买就便宜一点,多买多送

2023/04/07 23:23:41

  三级价格歧视”,就是对不同的人群或不同地域的人收取不同的价格。

2023/04/07 23:24:00

  人们对一种产品趋之若鹜的地区,价格就定得高一点;相反,如果一个地区的消费者对一种产品的需求弹性很高,对价格的变动很敏感,那么定价就低一点。

2023/04/07 23:25:08

  要成功实施价格歧视,最重要的就是要防止消费者之间对同样的产品进行转售。越是难以阻止消费者转售的产品,就越难实施价格歧视。 例

2023/04/07 23:25:57

  还有一种非常有趣的价格歧视:歌星在发售演唱会门

2023/04/07 23:29:49

  个行业、一个市场的竞争激烈

2023/04/07 23:32:52

  个行业、一个市场的竞争激

2023/04/07 23:33:01

  一个行业、一个市场的竞争激烈程度,不应该取决于这个行业里竞争企业的个数。

2023/04/07 23:33:06

  衡量一个市场的竞争程度,主要的一个标准,就是看一个行业的入口处有没有行政设置的障碍。有,这个市场竞争程度就有限;没有,市场就是激烈竞争的。一般来说,只要在行业入口处没有行政设置的障碍,这个市场就是充分竞争的市场。

2023/04/07 23:36:47

  阿克罗夫揭示了一个基本的道理:那就是人和人之间本来是没有互信的,高品质的产品要把自己彰显出来,与低品质的产品区分开来,需要很大的成本。如果这个问题不解决,就会出现劣币驱逐良币的现象。当消费者无法分辨哪一件是高品质产品、哪一件是低品质产品时,他们就会离场,卖家也同样会离场,市场就会崩溃

2023/04/09 12:18:19

  将优质商品与劣质商品区分开来,这是解决信息不对称问题的核心。

2023/04/09 12:21:42

  在经济学里,优质的第一层含义是指匀质。换言之,不是说厂商能把产品的品质做到多好,而是说产品的品质要维持一个稳定的水平。同一批产品当中,一件产品的品质,跟另外一件产品品质之间的差距不能大,而且差距越小越好

2023/04/09 12:22:09

  优质的第二层经济学含义是指,为了提高产品的质量所要付出的边际成本应该跟它得到的边际收益相等。当提高产品质量的边际成本等于边际收益时,我们说它达到了优质的标准。

2023/04/09 12:22:44

  第一个最常用的办法,是重复交易。信任起源于重逢,克服信息不对称的问题,重复交易是一个好办法。人们知道将来会再次见面,为了避免见面被戳穿或者被抓住,就会减少欺骗

2023/04/09 12:27:21

  第二个办法,是通过第三方的背书。买家和卖家互相不信任,但如果他们都认识一个中间人,通过中间人担保,买家和卖家就可以克服信息不对称的障碍。

2023/04/09 12:27:40

  ,那就是增加产品的附

2023/04/09 12:28:58

  要提高信任程度、克服信息不对称,还有一个办法,那就是增加产品的附加成本。

2023/04/09 12:29:02

  常见的三包——包修、包换、包退,就是对产品质量的一种保证。当消费者对产品没信心时,厂家实施三包政策,让他们试用感受一下,这有助于克服信息不对称造成的问题。

2023/04/09 12:32:06

  人们克服信息不对称的三种办法:质保、延保和收入共享合同。通过质保,我们可以让消费者帮助发现质量问题,有效降低质检成本;通过延保,商人也可以把那些对产品质量要求比较高的消费者甄别出来,让他们承担更高费用,从而让产品的生产成本与收益更加接近;而收入共享合同,则可以鼓励合作各方尽力保证自己所提供产品或服务的质量。

2023/04/09 12:36:03

  为了克服信息不对称,建立互信,人类社会构想出了各种各样有趣的解决方案,从重复交易到第三方背书,从质保、延保,再到收益共享。此外,还有三种非常接近的建立信任

2023/04/11 12:13:44

  为了克服信息不对称,建立互信,人类社会构想出了各种各样有趣的解决方案,从重复交易到第三方背书,从质保、延保,再到收益共享。此外,还有三种非常接近的建立信任的办法:付出沉没成本、给出人质或者给出抵押。

2023/04/11 12:13:49

  每当我们看到一种合约形式不公平,但是它却很持久、存在很广泛时,我们先不要抱怨、不要指责,我们要想想为什么,我们要去解释它背后的原因。它背后的原因是:合同表面看上去是不公平的,但它的

2023/04/11 12:26:01

  每当我们看到一种合约形式不公平,但是它却很持久、存在很广泛时,我们先不要抱怨、不要指责,我们要想想为什么,我们要去解释它背后的原因。它背后的原因是:合同表面看上去是不公平的,但它的目

2023/04/11 12:26:11

  每当我们看到一种合约形式不公平,但是它却很持久、存在很广泛时,我们先不要抱怨、不要指责,我们要想想为什么,我们要去解释它背后的原因。它背后的原因是:合同表面看上去是不公平的,但它的目的很可能是要去纠正现实社会中的另一种不公平。

2023/04/11 12:26:16

  那么什么时候应该分工,什么时候应该垂直整合呢?比较一下奶粉和鲜奶,午餐肉罐头和生鲜猪肉,其中的规律就是:如果半成品或者成品的检验成本比较低,换手的次数就可以多些,就可以进行更细的分工;相反,如果品质检验的成本比较高,就需要更多地进行垂直整合,减少中间环节。

2023/04/11 12:30:46

  汉德法官还把他的想法用公式写了出来,他把避免意外的成本记作B,把产生意外的概率记作P,把意外所产生的损失记作L,那么船主应承担责任的条件就是B<P×L。 这就是著名的汉德公式。 B<P×L

2023/04/14 12:12:12

  从经济学的角度看,我们要盯住的,永远不是某一个指标的最大化,而是多个指标之间的平衡。换句话说,我们要盯住的是边际收益和边际成本之间的平衡。任何事情都需要有一个度,因为过分的安全、过大的责任也会带来事与愿违的结

2023/04/14 12:24:32

  从经济学的角度看,我们要盯住的,永远不是某一个指标的最大化,而是多个指标之间的平衡。换句话说,我们要盯住的是边际收益和边际成本之间的平衡。任何事情都需要有一个度,因为过分的安全、过大的责任也会带来事与愿违的结果。

2023/04/14 12:24:36

  简单地说,企业是能够无中生有地带来额外收益的一种经济组织,每一个成员的收入取决于他对团队的边际贡献。当然,在企业里面每个人的边际贡献,并不是印在每个人的额头上,一望而知的,所以每个企业人力资源部的工作人员,都会通过各种线索,来判断每一位员工对企业的边际贡献,从而给他们厘定工资。

2023/04/17 12:27:44

  在一个企业里谁当老板? 第一个准则是,谁提供的资源更容易被滥用、被支配、被牵制,这种资源的所有者就充当老板。而与此对应,那些更容易偷懒、更容易滥用别的资源、更容易虚张声势假装卖力的资源所有者,会充当被管理者的角色。 当我们把资本和劳动力做比较时会发现,资本是更容易被欺负、被滥用的;而劳动力则更容易偷懒、更容易滥用资本。企业管理的核心问题,就是如何防止劳动力剥削、滥用、操控资本,而不是相反。大量关于企业管理、企业文化建设的经验,目的都只有一个,那就是让劳动力的利益向资本的利益看齐

2023/04/17 12:31:51

  经济学家把那些高度依赖于所在企业平台的资源,称为企业的专用资源(firm specific assets);而把那些无论放到哪个企业平台都能发挥差不多的功能、获得差不多收益的资源,称为企业的通用资源(firm independent assets)

2023/04/17 12:34:48

  如果我们让企业专用资源的所有者来充当企业的管理者和决策者,而让那些通用资源的所有者接受命令、服从管理,这时那些专用资源的所有者,因为更在乎企业的成败,就会成为更好的掌舵人。

2023/04/17 12:35:26

  (1)我们看哪种资源更容易欺负别的资源,让那种容易被欺负的资源的所有者当老板;(2)我们看哪种资源是企业专用的资源,我们让这种资源的所有者当老板或者管理者;(3)我们看哪种资源的投入容易观察、衡量与监督,我们对这种资源的所有者先给予固定的回报,而对于那些不容易观察、衡量与监督的资源,我们对其所有者采取剩余分配的方式,让他们拿企业剩下的利润。

2023/04/17 12:44:00

  员工在一个企业里的议价能力,取决于他在别处的机会。他在别处的机会越多,他在这个企业里议价的能力就越高,因为他随时可以选择离开。而如果一个人在别处的机会已经用尽,目前的收入已经是众多选择里最高的了,那么他就没什么议价能力可言,只能老老实实待在这个企业里工作。

2023/04/19 12:21:53

  任何个人在团队里得到的回报,跟他给这个团队带来的边际收入应该相称

2023/04/19 12:23:13

  哪里存在同工不同酬现象,哪里就存在廉价的优质员工。市场竞争的压力越大,雇主寻找廉价优质员工的积极性就越足,结果会使得同工不同酬的现象会趋于减少和消失。这是我要说的第一点

2023/04/19 12:31:43

  哪里存在同工不同酬现象,哪里就存在廉价的优质员工。市场竞争的压力越大,雇主寻找廉价优质员工的积极性就越足,结果会使得同工不同酬的现象会趋于减少和消失。

2023/04/19 12:31:47

  基尼系数计算的,只不过是人与人之间瞬间收入的差距。它忽略了一个基本事实,那就是不同的人会选择不同的职业,不同的职业有不同的终身收入节奏。而不同的终身收入节奏,会极大地影响我们在每一个时刻所计算的收入差距。

2023/04/20 12:35:36

  罢工有两个特点:第一,是在关键的时候提出不干活,也叫敲竹杠;第二,是自己不干活的同时还阻止别人干活。

2023/04/24 12:30:14

  研究工会的经济学家——包括其中公开支持工会的经济学家——通过分析都得出一个结论,那就是这些工会组织只不过是一种卡特尔,它们通过限制公司和企业的劳动力供给,来获得高于竞争市场的工资水平。

2023/04/24 12:31:52

  罢工的第二个性质,那就是它的经济后果。它确实能够使得部分已经进入了工会或者拿到了执业许可的人增加收入,但同时它会使其他的人,包括老板、投资者、消费者和其他没有得到雇用的人蒙受损失。我们既要看到局部收益的增加,也要看到全局收益的损失。

2023/04/24 12:34:03

  整个宏观经济学研究的其实是协调的问题,而协调的核心手段,就是货币。换句话说,宏观经济学的关注点,就是整个社会是如何通过货币来达成合作和协调的。

2023/04/25 12:22:22

  奥地利学派里有一个重要的概念叫“自发秩序”(spontaneous order),它的意思是,我们今天在社会上看到的秩序,不是由哪一个个人或者哪一个权威机构一厢情愿地设计出来的,它是由无数人的行动汇合而成的。我们日常使用的语

2023/04/25 12:23:28

  奥地利学派里有一个重要的概念叫“自发秩序”(spontaneous order),它的意思是,我们今天在社会上看到的秩序,不是由哪一个个人或者哪一个权威机构一厢情愿地设计出来的,它是由无数人的行动汇合而成的。我们日常使用的语言是一种自发秩序,货币也是一种自发秩序。

2023/04/25 12:23:34

  货币提供的第一个帮助,就是人们用不着满足交易中对双重偶然性(double–coincidence)的要求了。

2023/04/25 12:23:54

  货币代表着机会,多挣钱不代表人们爱的只是钱,钱多只代表人的机会更多、选择更多。至于一个人怎么使用这个机会,是个人的选择,不同的人有不同的志向。

2023/04/25 12:24:48

  货币的第二个作用,是使得交易当中的质检成本大大减少。

2023/04/25 12:25:10

  货币的第三个作用,是在货币的第一和第二个作用的基础上产生的。我们不需要满足双重偶然性的要求,质检的成本大减,结果是什么?结果是交易量大增。社会上每一个参与交易的人,幸福感都得到了极大的提升。

2023/04/25 12:25:56

  这个定律讲的是,一旦一个社会确定了用某种商品作为货币,这种商品在流通当中的质量就会发生变化。质量较高的品种会被人们保存下来,质量较低的会留在流通当中,质量不高的货币会把质量较高的货币驱赶出流通领域。这就是人们常说的“劣币驱逐良币”。(Good money is driven out by cheap money.)

2023/04/25 12:28:51

  这种商业银行无法满足所有储户提现要求的现象,我们称之为“流动性困难”(convertibility problem)

2023/04/25 12:32:27

  通货膨胀是指物价的持续增长。这里的“物价”指的不是某种商品的价格,而是指一般的物价总水平。通货膨胀的概念有两个关键点:第一,它指的是总的物价水平;第二,是持续的增长,不是暂时的增长

2023/04/26 12:26:53

  衡量通货膨胀的指标有很多,其中一个很常见的叫“消费者物价指数”(consumer price index, CPI)

2023/04/26 12:27:16

  理解通货膨胀,有一个古老、扎实、到今天还被广泛使用的理论框架——“货币数量论”。经济学家通过这个理论框架,来分析理解通

2023/04/26 12:32:04

  理解通货膨胀,有一个古老、扎实、到今天还被广泛使用的理论框架——“货币数量论”

2023/04/26 12:32:17

  这个理论用一个简单的公式来表示:货币流通量乘以货币流通的速度,等于一个社会里货物的总量乘以平均物价。用符号来代表就是:

2023/04/26 12:33:45

  通货膨胀最重要的影响就是,在经济生活当中,每个个体很难分辨物价的上涨究竟是相对价格的变化还是物价整体水平的变化。

2023/04/26 12:38:29

  在通货膨胀发生的过程中,在私人和政府之间也会产生财富的转移,政府多印钞票,政府的购买力就会增加,而民众的购买力就会下降,这实际上是政府向民众征收的一种无形的税。

2023/04/26 12:42:20

  如果一个社会的货币工资变动率比较高,人们就愿意出来就业,失业率就比较低;相反,货币工资变动率比较低时,人们就更愿意停下来寻找更好的工作机会,就业水平就比较低,换句话说,失业率就比较高。

2023/05/04 12:20:28

  如果政府反复地使用通货膨胀来对付失业,失业率就降不下去了,到时候有可能会出现通货膨胀和高失业率同时并存的现象。这就是所谓的滞胀——既存在通货膨胀,又存在经济停滞的现象

2023/05/04 12:23:14

  生活中到处都是冲击,要应付这些冲击,人们的反应不是即时的,而是滞后的,不是全面的,而是渐进的。这本身就是合理的。额外的干预不会解决问题,而只会产生新的问题。

2023/05/05 12:38:21

  在投票的情况下,公共选择的结果相当于中位数,由中位数决定;而在市场里,公共选择的结果则由平均数的位置决定。

2023/05/23 12:21:46

  阿罗不可能定律,是指在人们有多种不同选择的情况下,选举不一定能够反映出大多数人的意愿。

2023/05/23 12:25:51

  阿罗不可能定律指出,在特定的情况下,要选择真正能够代表大多数人意愿的那个选项是不可能的,选择的结果其实是循环的。实际上,不同的问法就决定了不同的答案,并不存在什么大多数人的意愿这一说。 已

2023/05/23 12:28:39

  在讨论民主投票制度的优劣的时候,我们不要忘记经济学的这个重要而独特的视角:人们在需要承受代价的时候就会变得理性,在不需要承受代价的时候就会放纵自己的无知,就会放纵自己的感情和偏见,去支持那些无效的经济政策,让自己错误的观念、不负责任的观念对别人造成影响,产生巨大的外部负效应。

2023/05/23 12:42:08

  戴雷科特定律:收入再分配,真正得益的并不是穷人而是中等收入的人

2023/05/24 12:19:29

唐史并不如烟系列

Author: 曲昌春

  物开始。 小人物名叫武温昚

2021/05/02 11:12:29

  称作大姨,封韩国夫人;次长的一个称作三姨,封为虢

2021/05/02 11:54:32

  一起出发。 不一会儿,杨铦

2021/05/03 09:21:02

  珙。 所不同的是,

2021/05/04 14:17:54

  珙。 所不同的是,

2021/05/04 14:17:57

倦怠社会

Author: 韩炳哲

  因此,并非“人仅属于自身”的社交命令,而是成就压力造成了过劳式抑郁症。由此可见,倦怠综合征(Burn-out-Syndrom)不是表达了筋疲力尽的自我,而是表达了疲惫、燃尽的(ausgebrannt)心灵。

2023/06/16 12:17:29

  主权独立的人,不模仿任何人,尼采曾宣告他的降临,如今此类型的人即将大量出现。没有在他之上的权威告诉他,他应当成为什么样的人。因为他宣称自己只属于自身。

2023/06/16 12:20:00

  尼采的主权独立的人:“主权独立的人,不模仿任何人,尼采曾宣告他的降临,如今此类型的人即将大量出现。没有在他之上的权威告诉他,他应当成为什么样的人。因为他宣称自己只属于自身。” [2] 恰恰相反,按照尼采的观点,即将大量出现的不是主权独立的超人,而是只会劳作的“末人”(der letzte Mensch) [3] 。这种新型的人类,毫无防御地陷入过度的积极性之中,没有任何独立自主性可言。抑郁的人是一种劳作动物(animal laboran),他在没有任何外力压迫的情况下,完全自愿地剥削自我

2023/06/16 12:20:22

  绩主体投身于一种强制的自由,或者说自由的强制之中,以达到最终目的——效绩的最大化。 [4] 工作和效绩的过度化日益严重,直到发展成一种自我剥削。这比外在的剥削更有效率,因为它伴随着一种自由的感觉。剥削者同时是被剥削者。施虐者和受害者之间不分彼此。这种自我指涉性产生了一种悖论式自由,由于其内部固有的强制结构而转化为暴力。功绩社会的精神疾病,便是这种悖论式自由在病理学上的显现。

2023/06/16 12:24:35

  一味的忙碌不会产生新事物。它只会重复或加速业已存在的事物

2023/06/16 12:27:35