我一直在为我正在做的一个项目阅读可扩展/可扩展类的文档。我对包含MARK和POINT的跨空间的定义和用法感到困惑。
在“文档”中,MARK似乎被定义为“附加”到字符的位置,而POINT则被定义为“粘贴”到字符。因此,当文本被更改时,MARK不会移动,而当文本被更改时,POINT将以“粘合”的字符移动。
这些定义似乎表明MARK是INCLUSIVE的同义词,POINT是EXCLUSIVE的同义词。
然而,情况并非如此,因为SPAN_MARK_MARK和SPAN_POINT_POINT都不是SPAN_INCLUSIVE_INCLUSIVE或SPAN_EXCLUSIVE_EXCLUSIVE的同义词。实际上,SPAN_INCLUSIVE_INCLUSIVE与SPAN_MARK_POINT相同,SPAN_POINT_MARK与SPAN_EXCLUSIVE_EXCLUSIVE相同。
我的问题如下
SPAN_POINT_MARK是SPAN_EXCLUSIVE_EXCLUSIVE的同义词?为什么SPAN_MARK_POINT是SPAN_INCLUSIVE_INCLUSIVE的同义词?SPAN_MARK_MARK和SPAN_POINT_POINT不是SPAN_INCLUSIVE_INCLUSIVE和SPAN_EXCLUSIVE_EXCLUSIVE的同义词?MARK和POINT的真正定义是什么?发布于 2013-07-24 05:33:18
它们是概念性的概念,按照它们出现的顺序来考虑它们。
从医生那里:
标记和点在概念上位于两个相邻字符之间。一个标记是“附”在字符之前,而一个点将坚持字符后。插入光标在概念上位于标记和点之间。因此,在标记和点之间插入一个新字符将保持标记不变,而点将被移动,现在位于插入字符之后,但在插入字符之后仍然粘在相同的字符上。根据插入是发生在span的开头还是结尾,span将因此被扩展到包含新字符(当span在开始使用标记或在结束时使用标记时)或它将被排除在外。请注意,在这里之前和之后引用字符串中的偏移量,它们独立于文本的可视表示形式。
你的观点
这些定义似乎表明,马克是包容性的同义词,而这一点是排他性的同义词。
事实并非如此。基本上,将标记作为span的起始标记,点作为端点。这两点之间发生的事情(样式化,向样式文本中添加更多文本等等)现在被归类为包容性和排他性,因此与它们直接相关。
让我们看看一个例子:让我们说我们有以下的文本样式
这是,一个示例文本
如果我们在粗体跨度上使用SPAN_EXCLUSIVE_EXCLUSIVE,并且在中间插入文本,那么它仍然是粗体:
这是,一个难以置信的好例子,文本
但是,如果我们在粗体跨度的开头或结尾插入文本,则插入的文本不是粗体:
这不是--一个示例文本
如果我们使用SPAN_INCLUSIVE_EXCLUSIVE,那么在开头插入文本将作为span的一部分包括在内,我们将有:
这是,这是一个很好的例子,文本不是吗?
现在这一切只是我对文档的解释。为什么SPAN_POINT_MARK是SPAN_EXCLUSIVE_EXCLUSIVE的同义词,我想是谷歌的某些人不得不发表评论的,但在我看来,MARK_POINT运动代表包容,POINT_MARK代表排斥。SPAN_POINT_POINT和SPAN_MARK_MARK表示0长字符串,因此不能归因于包含/排除。
::SPAN_MARK_MARK和SPAN_POINT_POINT是0长度的字符串,即字符串以0位置的标记开始,然后任何后续的添加都附加到字符串中,但是标记位置不会改变,或者字符串以点位置开始,字符串的任何后续添加都会将点移到末尾。这些标志实质上表示起始点为可扩展字符串,因此表示0长度字符串。然后,可以使用包含所有的独占标志,这取决于字符串是mark_mark还是point_point。同时,SPAN_EXCLUSIVE_INCLUSIVE,当0长度时,表现为标记,而SPAN_INCLUSIVE_EXCLUSIVE时,0长度表现为点,这从它们是defined.Again的方式中是显而易见的--这是我对文档的解释。
https://stackoverflow.com/questions/16531555
复制相似问题