搜索 带来
因为我的一次疏忽而带来的golang1.23新特性

因为我的一次疏忽而带来的golang1.23新特性

距离golang 1.23发布还有两个月不到,按照惯例很快要进入1.23的功能冻结期了。在冻结期间不会再添加新功能,已经添加的功能不出大的意外一般也不会被移除。这正好可以让我们提前尝鲜这些即将到来的新特性。 今天要说的就是1.23中对 //go:linkname 指令的变更。这个新特性可以说和我的一次失误息息相关。 重要的事情得先写在前面: //go:linkname 指令官方并不推荐使用,且不保证任何向前或者向后兼容性,因此明智的做法是尽量别用 牢记这一点之后,我们可以接着往下看了。至于为啥和“我”也就是本文的作者有关,我们先看完新版本带来的新变化再说。 linkname指令是做什么的 简单的说,linkname指令用于向编译器和链接器传递信息。具体的含义根据用法可以分为三类。 第一类叫做“pull”,意思是拉取,使用方式如下: import _ "unsafe" // 必须有这行才能用linkname import _ "fmt" // 被拉取的包需要显式导入(除了runtime包) //go:linkname my_func fmt.Println func my_func(...any) (n int, err error) 这种用法的指令格式是 //go:linkname 。 这个指令的作用就是告诉编译器和连接器, my_func 的函数体直接使用 fmt.Println 的, my_func 类似 fmt.Println 的别名,和它共享同一份代码,就像把指令第二个参数指定的函数和变量拉取下来给第一个参数使用一样。 正因如此,指令下方给出的声明必须和被拉取的函数/变量完全一致,否则很容易因为类型不匹配导致panic(是的没错,除非拉取的对象不存在,否则都不会出现编译错误)。 这个指令最恐怖的地方在于它能无视函数或者变量是否是export的,包私有的东西也能被拉取出来使用。因为这一点这种用法在早期的社区中很常见,比如很多人喜欢这么干: //go:linkname myRand runtime.fastrand ,因为runtime提供了一个性能还不错的随机数实现,但没有公开出来,所以有人会用linkname指令把它导出为己所用,当然随着1.21的发布这种用法不再有任何意义了,请永远都不要去模仿。 第二种用法叫做“push”,即推送。形式上是下面这样: import _ "unsafe" // 必须有这行才能用linkname //go:linkname main.fastHandle func fastHandle(input io.Writer) error { ... } // package main func fastHandle(input io.Writer) error // 后面main包中可以直接使用fastHandle // 这种情况下需要在main包下创建一个空的asm文件(通常以.s作为扩展名),以告诉编译器fastHandle的定义在别处 在这种用法中,我们只需要把函数/变量名当作第一个参数传给指令,注意需要给出想用这个函数/变量的包的名字,这里是main。同时在指令下方的函数/变量必须有完整的定义。 这种用法是告诉编译器和链接器这个函数/变量的名字就是 xxx.yyy ,如果遇到这个函数就使用linkname指定的函数/变量的代码,这个模式下甚至能在本包定义别的包里的函数。 当然这种用法的语义作用更明显,它意味着这个函数会在任何地方被使用,修改它需要小心,因为改变了函数的行为可能会让其他调用它的代码出bug;修改了函数的签名则很可能导致运行时panic;删除了这个函数则会导致代码无法编译。 最后一类叫做“handshake”,即握手。他是把第一类和第二类方法结合使用: package mypkg import _ "unsafe" // 必须有这行才能用linkname //go:linkname fastHandle func fastHandle(input io.Writer) error { ... } package main import _ "unsafe" // 必须有这行才能用linkname //go:linkname fastHandle mypkg.fastHandle func fastHandle(input io.Writer) error “pull”的一方没什么区别,但“push”的一方不用再写包名,同时用来告诉编译器函数定义在别的地方的空的asm文件也不需要了。这种就像通讯协议中的“握手”,一方告诉编译器这边允许某个函数/变量被linkname操作,另一边则明确像编译器要求它要使用某个包的某个函数/变量。 通常“pull”和“push”应该成对出现,也就是你只应该使用“handshake”模式。 然而不幸的是,当前(1.22)的go语言支持“pull-only”的用法,即可以随便拉取任何包里的任何函数/变量,但不需要被拉取的对象使用“push”标记自己。而被linkname拉取的一方是完全无感知的。 这就导致了非常大的隐患。 linkname带来的隐患 最大的隐患在于这个指令可以在不通知被拉取的packages的情况下随意使用包中私有的函数/变量。 举个例子: // pkg/mymath/mymath.go package mymath func uintPow(n uint) uint { return n*n } // main.go package main import ( "fmt" _ "linkname/pkg/mymath" _ "unsafe" ) //go:linkname pow linkname/pkg/mymath.uintPow func pow(n uint) uint func main() { fmt.Println(pow(6)) // 36 } 正常来说, uintPow 是不可能被外部使用的,然而通过linkname指令我们直接无视了接口的公开和私有,有什么就能用什么了。 这当然是非常危险的,比如我们把 uintPow 的参数类型改成string: package mymath func uintPow(n string) string { return n + n } 这时候编译还是能正常编译,但运行的时候就会出现各种bug,在我的机器上表现是卡死和段错误。为什么呢?因为我们把uint强行传递了过去,但参数需要是string,类型对不上,自然会出现稀奇古怪的bug。这种在别的语言里是严重的类型相关的内存错误。 另外如果我们直接删了 uintPow 或者给他改个名,链接器会在编译期间报错: $ go build # linkname main.main: relocation target linkname/pkg/mymath.uintPow not defined 而且我们导出的是私有函数,通常没人会认为自己写的私有级别的帮助函数会被导出到包外并被使用,因此在开发时大家都是保证公开接口的稳定性,私有的函数/变量是随时可以被大规模修改甚至删除的。 而linkname将这种在别的语言里最基本的规矩给粉碎了。 而且事实上也是如此,从1.18开始几乎每个版本都有因为编译器或者标准库内部的私有函数被修改/删除从而导致某些第三方库在新版本无法使用的问题,因为这些库在内部悄悄用 //go:linkname 用了一些未公开的功能。最近一次发生在广泛使用的知名json库上类似的问题可以在 这里 看到。 linkname的正面作用 既然这个指令如此危险,为什么还一直存在呢?答案是有不得不用的理由,其中一个就在启动go程序的时候。 我们来看下go的runtime里是怎么用linkname的: // runtime/proc.go //go:linkname main_main main.main func main_main() // runtime.main // 所有go程序的入口 func main() { // 初始化runtime // 调用main.main fn := main_main // make an indirect call, as the linker doesn't know the address of the main package when laying down the runtime fn() // main退出后做清理工作 } 因为程序的入口在runtime里(要初始化runtime,比如gc等),所以入口函数必须在runtime包里。而我们又需要调用用户定义在main包里的main函数,但main包不能被import,因此只能靠linkname指令让链接器绕过所有编译器附加的限制来调用main函数。 这是目前在go自身的源代码里看到的唯一一处不得不使用“pull-only”模式的地方。 另外“handshake”模式也有存在的必要性,因为像runtime和reflect需要共享很多实现上的细节,因此reflect作为pull的一方,runtime作为push的一方,可以极大减少代码维护的复杂度。 除了上述这些情况,绝大数linkname的使用都可以算作 abuse 。 golang1.23对linkname指令的改动 鉴于上述情况,golang核心团队决定限制linkname的使用。 第一个改动是标准库里新添加的包全部禁止使用linkname导出其中的内容,目前是通过黑名单实现的,1.23中新添加的几个包以及它们的internal依赖都在名单上,这样可以防止已有的linkname问题继续扩大。这对已有的代码也是完全无害的。 第二个变更时添加了新的ldflags: -checklinkname=1 。1代表开启对linkname的限制,0代表维持1.22的行为不变。目前默认是0,但官方决定在1.23发布时默认值为1开启限制。个人建议尽量不要关闭这个限制。这个限制眼下只针对标准库,但按官方的说法效果好的话以后所有的代码不管标准库还是第三方都会启用限制。 最后也是最大的变动,禁止对标准库的 “pull-only” linkname指令,但允许“handshake”模式。 虽然go从来不保证linkname的向后兼容性,但这样还是会大量较大的破坏,因此官方已经对常见的go第三方库做了扫描,会把一些经常被人用linkname拉取的接口改成符合“handshake”模式的形式,这种改动只用加一行指令即可。而且该限制目前只针对标准库,其他第三方库暂时不受影响。 因为这个变更,下面的代码在1.23是无法编译通过的: package main import _ "unsafe" //go:linkname corostart runtime.corostart func corostart() func main() { corostart() } 因为 runtime.corostart 并不符合handshake模式,所以对它的linkname被禁止了: $ go version go version devel go1.23-13d36a9b46 Wed May 15 21:51:49 2024 +0000 windows/amd64 $ go build -ldflags=-checklinkname=1 # linkname link: main: invalid reference to runtime.corostart linkname指令今后的发展 大趋势肯定是以后只允许handshake模式。不过作为过渡目前还是允许push模式的,并且官方应该会在进入功能冻结后把之前说的扫描到的常用的内部函数添加上linkname指令。 这里比较重要的是作为开发者的我们应该怎么办: 1.23发布之后或者现在就开始利用 -checklinkname=1 排查代码,及时清除不必要的linkname指令。 如果linkname指令非用不可,建议马上提issue或者熟悉go开发流程的立刻提pr补上handshake模式需要的指令,不过我不怎么推荐这种做法,因为内部api尤其是runtime以外的库的本来就不该随便被导出使用,没有一个强力的能说服所有人的理由,这些issue和pr多半不会被接受。 向官方提案,尝试把你要用的私有api变成公开接口,这一步难度也很高,私有api之所以当初不公开一定是有原因的,现在再想公开可能性也不高。 你的追求比较低,只要代码能跑就行,那可以在构建脚本里加上 -ldflags=-checklinkname=0 关闭限制,这样也许能岁月静好几个版本,直到某一天程序突然没法编译或者运行了一半被莫名其妙的panic打断。 4是万不得已时的保底方案,按优先度我推荐1 > 3 > 2的顺序去适配go1.23。2和3不仅仅适用于go标准库,常用的第三方库也可以。通过这些适配工作说不定也有机会让你成为go或者知名第三方库的贡献者。 从现在开始完全是来得及的,毕竟离1.23的第一个测试版发布还有一个月左右,离正式版发布还有两个月。而且方案2的修改并不算作新功能,不受功能冻结的影响。 当然,大部分开发者应该不用担心,比较linkname的使用是少数,一些主动使用linkname的库比如quic-go也知道兼容性问题,很小心地做了不同版本的适配,加上官方承诺的兜底这一对linkname指令的改动的影响应该比想象中小,但是是提高代码安全性的一大步。 说了这么多,和本文的作者有啥关系呢 那肯定有关系,老丢人了。 其实之所以会在开发窗口的中后期有这样大的变动,多半是因为我捅的篓子:前面也说过以前也有不少linkname引用的私有api变化导致的兼容问题,但要么影响范围很小要么作者及时适配使得这些问题没引起太大的波澜;但这次我的改动影响到了某个广泛应用的基础库,这个库用linkname指令引用了大量的内部api,更恐怖的是k8s也在用它,有人用master分支的go编译了一下k8s问题才被发现,要是没能及时发现的话会有一大堆软件在1.23测试版发布的时候出现兼容问题。其实在我的提交之前这些内部api已经变得面目全非了,但因为函数名字和字段类型没怎么变所以库的代码还能接着跑,直到我的提交打破了这一切。 当然问题要说大其实也不大,像那样大量使用linkname且没怎么适配版本的第三方库本身就不多,其次把变更的内部函数的签名还原之后问题很快就解决了,因此除了核心开发者和谷歌内部之外应该没多少人发觉这个问题。这也充分体现了linkname的危险性:在不算缺乏经验的我以及至少三位经验丰富的审核者的review下也没预料到这样功能简单且使用面极窄的内部私有函数会被linkname指令拉取出来使用。 后续库作者也说这些linkname引用的内部api其实很早之前就已经没啥用处了,他会尽快删除;实际上我跟踪了一下库代码发现这些被linkname导出的内部api除了设置了一些简单的flag值之外也确实没啥用处,flag值有些也没用上。 认识到这样的危险性后go官方自然不会坐视不管,官方以前应该也有类似想做限制的想法,这次也算是找到了合情合理的理由了,所以这回行动也意外的快,不到一星期从黑名单禁止导出新的库到linkname指令的检查都实现了。不出意外的话我们应该能在1.23看到一个更健壮的go以及它的标准库。 这样的问题怎么避免?答案是不可能,因为linkname能无视几乎一切限制私有函数/变量的办法,而且你也很难知道有哪些代码通过linkname访问了你写的函数/变量,因此只要一天不做限制类似这次问题的事故就会越来越多,总不可能让开发者每次改完代码都扫描一遍go语言编写的常见的项目吧。而且go的兼容性保证的是公开的接口和语法,内部实现的细节从来都不是也不应该是保证的对象。 我捅的这个篓子现在作为example被放在新提案里呢,虽说本质上用日本话讲叫“お互い様”(大家都有不对的地方),但作为广泛应用的编程语言也确实有需求和义务要兼容那些作为生态基石的应用广泛的第三方库,作为go的贡献者之一却忽视了这一点被结结实实地被上了一课也是应该的,算是经验教训了。。。 总结 最后总结就一句话:没事别用 //go:linkname 。。。。。。 想跟进这一变更的进展的话,可以看这个issue: https://github.com/golang/go/issues/67401

网游攻略 2024-05-17
《荒野大镖客2》全新高清纹理Mod震撼登场,为玩家带来视觉盛宴

《荒野大镖客2》全新高清纹理Mod震撼登场,为玩家带来视觉盛宴

近日,一款全新的《荒野大镖客2》高清纹理Mod震撼登场,为玩家呈现了一场视觉盛宴。 这款名为All-In-One Megapack的升级Mod可在N网上下载,它整合了garbageman42069之前发布的多个纹理包,涵盖了星星、月亮、动物、船只、瓶子、椅子、食物、商店道具、灯笼、服装等各个方面。这一Mod的问世,为游戏的视觉效果带来了翻天覆地的改变,尤其是在高分辨率下,呈现出更加细腻、清晰的画面质感。 Mod下载地址>>> 尽管《荒野大镖客2》已经问世多年,但凭借其令人惊叹的世界设计、引人入胜的故事情节和生动的角色塑造,它依然是备受玩家追捧的 开放世界游戏 之一。这款全新的高清纹理Mod的推出,无疑将进一步提升玩家对游戏的沉浸体验,为游戏带来全新的视觉享受。 关键词标签:荒野大镖客2

游戏资讯 2024-04-24
喝红酒对身体的六大益处

喝红酒对身体的六大益处

喝红酒能带来的六大好处红酒有促进胃酸分泌,减肥瘦身,美容养颜,调节中枢神经抑菌的作用。红酒里面含有单宁类的物质,能够增加肠道收缩,调整肠道功能,刺激胃酸分泌,达到增强食欲的效果,起到助消化的作用。酒还具有减肥瘦身的效果,里面含有多种的氨基酸维生素以及矿物质元素,能够被人体直接吸收利用,可以减少对水分的吸收,达到减肥的效果。红酒还具有美容养颜抗衰老的作用,它里面含有丰富的黄金素以及抗氧化物质,经常喝红酒能够促进血液循环,抗衰老,美容养颜,尤其是女性,晚上睡前适量喝点红酒,能够起到助睡眠的作用。对于女性来说能够有良好的睡眠,质量是能有效的抗衰老让皮肤和精神状态都年轻化。但是喝的时候也要根据自己的酒量,不宜喝的太多,如果喝太多反而会影响睡眠质量。红酒还有调节中枢神经系统的作用,抑菌消炎。可以说常喝红酒对身体的好处是非常多的。能喝红酒也能增强体质,起到预防疾病的效果。而且如果感冒之后把红酒在火上加热打一个鸡蛋在酒里面搅拌均匀之后喝下去能够对感冒起到很好的治疗效果,但是要根据自身的酒量,如果酒量不行,千万不要使用这个方法。葡萄酒里面的热量比较低,喝酒之后葡萄酒的营养成分能被人体直接吸收消化,基本上在4个小时内就会消化光,不会增加体重,经常喝红酒还能有助于减肥,葡萄酒还有利尿的效果,可以防止身体水肿,维持体内的酸碱平衡。虽然酒精度数比较低,但是也不要长期大量喝,也会导致醉酒。喝红酒的时候尽量不要和其他的酒类一起喝,尤其是白酒和啤酒一起喝,特别容易引起宿醉,导致头痛头晕呕吐的情况。

家常菜 2024-03-27
嗑瓜子可能会带来的危害

嗑瓜子可能会带来的危害

嗑瓜子的危害瓜子在日常的生活当中比较常见属于零食当中的一种,一般人们在寒冷的冬天围在一起烤火聊天嗑瓜子,真的非常的开心,但是大家在嗑瓜子的过程中也需要注意相关的细节,毕竟嗑瓜子时稍有不慎就会对身体造成伤害,并且还有可能会出现中毒的情况,首先人们在嗑瓜子时可能会伤了舌头,毕竟很多小伙伴在嗑瓜子时,由于嗑瓜子的时间较长,舌头会出现刺痛感,主要是瓜子和和舌尖反复摩擦所引发的疼痛。瓜子作为坚果类食物当中的一种,在生活中嗑瓜子时,由于瓜子里面含有大量的油脂,不仅不利于消化,而且还能够导致肠胃消化道出现胀气,腹胀腹痛等等情况,另外也有部分小伙伴在生活中磕瓜子时直接磕坏了牙齿,毕竟有部分小伙伴经常嗑瓜子,会导致大门牙直接出现一个坑,这样会严重影响到美观,建议大家及时补牙。目前市面上的瓜子口味众多,商家为了迎合大众的口味也会推出不同口味的瓜子,其实这些瓜子当中已经添加了各类添加剂,人们在生活中要是经常吃这类瓜子的话,可能会对自身健康造成影响,其中影响颇深的就是人体的肝脏。当然人们在生活中要是长时间的嗑瓜子,可能会出现自然的情况,毕竟瓜子长时间放置会出现变质发霉等等情况,一旦发霉之后会产生黄芪霉素这种成分会影响到人体健康。虽说人们在生活中可以适当的吃瓜子,但是大家千万不要吃太多的瓜子,因为太多的瓜子中含有高脂肪高蛋白,会影响到人们正常的进食,并且人们一次性摄入高热量,最终导致体重增加肥胖等等问题,其实很多小伙伴在嗑瓜子时发现自身的口腔健康出现了问题,毕竟在嗑瓜子时会影响到口腔内环境。

家常菜 2024-03-23
血液垃圾带来危害

血液垃圾带来危害

血液垃圾的危害血液垃圾对人体的危害是非常大的,会发生很多疾病,比如高血压,高血糖高血脂,还有可能会引发全身的并发症,比如高血压,冠心病,心肌梗塞,脑梗等。由此可见,血液垃圾对人体的危危害是特别大的,所以平时我们一定要做好预防。尤其是在饮食方面需要特别注意的不能吃一些,高脂肪,高盐,油炸,烧烤类的食物。这些食物进入身体以后是很难代谢掉的,会产生很多毒素垃圾积存在身体和血液里,给人带来疾病。 血液垃圾长期在身体里面积存,在血管里面,堵塞血管时就会出现高血压,高血糖等全身并发症,还有糖尿病的患者身体也会出现头晕耳鸣,心悸气短,失眠,肢体麻木等一些特别不舒服的症状。他的血液垃圾在身体里面堆积太长时间,特别容易引发冠心病,心肌梗塞,造成冠状动脉栓塞,心血管供血不足,心绞痛等症状,有些严重的发病的时候,如果抢救不及时,可能会有生命危险。 我们平时经常听别人说,谁得了心肌梗塞或者脑梗,其实这都是因为血液垃圾堆积太多造成的,如果脑部的血管垃圾毒素太多就会导致血液粘稠血流的速度变慢,动脉血管壁发生病变,当血管的粘稠度增加,阻塞血管,形成血栓就会导致脑梗死。如果突发的脑梗长时间没有得到治疗,会导致缺血缺氧坏死,引起神经功能障碍,早上时候我们在公园里经常看见走路都走不好的大爷大妈,基本上都是脑梗造成的。 日常生活中,我们要预防血液垃圾堆积。就要从饮食方面进行调整。不吃高油高盐的食物。比如油炸的食物,也比如腌制过的高盐食物都要少吃。平时最好做到清淡饮食,荤素搭配。吃肉最好选择一些低脂肪的鱼肉,羊肉牛肉等,戒烟戒酒,调整成健康的生活。

家常菜 2024-03-20
绝地求生手游公测9号带来全新地图与改进玩法!(绝地求生手游公测9号惊喜上线,期待全新游戏模式!)

绝地求生手游公测9号带来全新地图与改进玩法!(绝地求生手游公测9号惊喜上线,期待全新游戏模式!)

绝地求生手游公测9号带来全新地图与改进玩法! 绝地求生手游公测9号带来全新地图与改进玩法! 绝地求生手游公测9号惊喜上线,期待全新游戏模式! 绝地求生手游公测9号带来全新地图与改进玩法!小编在这里为大家带来了,刺激战场手游的更新公告以及游戏中会上线什么新模式,大家可以期待一下哦~ 《绝地求生》官方公布将会在10月19日迎来全新的大版本内容更新及游戏内容优化。 本次的测试时间为9号晚上20:00-23:00; 而对于此次更新的内容我们也已经迫不及待地等待了,官方表示将于本周内进行全区停机维护更新,届时各位击友将有3分钟左右的时间登录游戏; 本次大版本更新的内容是: 1.游戏内将加入经典模式的匹配机制; 2.新增经典模式下限时段位系统; 3.新增单人、双人、四人的排位赛段位; 4.新模式“雾天”登场! 同时,我们也会持续关注游戏中的各项动态,并在不定期发布新的战绩和数据供玩家们查看和了解。 绝地求生手游公测9号惊喜上线,期待全新游戏模式! 绝地求生手游公测9号惊喜上线,期待全新游戏模式! 《绝地求生:刺激战场》是腾讯旗下首款百人竞技射击类手游。在该游戏中,玩家将作为队伍中的一名战士,与其他队伍的其他选手一同展开对决,通过枪支的射击、近战武器的搭配和走位,最终取得胜利。同时,该作也为玩家带来了丰富的枪械道具、载具以及各类防具装备,让每个玩家都能在游戏中感受到前所未有的爽快体验。同时,这款作品还结合了国际服的操作特点进行了一些优化。该作采用了最新的引擎技术打造,让画面更加真实逼真,玩家可以根据自己的喜好和习惯,自由设置多种配件。 《绝地求生:刺激战场》将于2020年9月7日正式开售! 《绝地求生:刺激战场》是一款由光子工作室研发并发行的高品质第一人称射击类网游,是网易继《使命召唤14》、《王者荣耀》之后又一部以端游原班团队倾力开发且拥有大量忠实玩家粉丝支持的作品。在本次测试中有多个版本可选,玩家可以在不同渠道下载游戏。目前已知的是:iOS、Android、PC互通,分别于8月15日至10月初开放各平台服务器下载;安卓用户将在苹果商店更新版本至1.2.0后开启游戏充值功能;iOS用户需在Android设备上安装“AppleID”(需要密码)才能登陆游戏。

网游攻略 2024-02-23
揭秘菜鸟黑龙2多重技能进阶系统!(全新玩法曝光!龙之谷手游菜鸟黑龙2带来全面进化!)

揭秘菜鸟黑龙2多重技能进阶系统!(全新玩法曝光!龙之谷手游菜鸟黑龙2带来全面进化!)

揭秘菜鸟黑龙2多重技能进阶系统! 《龙之谷手游》的玩家朋友们,你们是否对《龙之谷手游》中的多重技能进阶系统感到好奇呢?下面就为大家详细介绍游戏内的各种不同进化系统的玩法。 【职业进化】 《龙之谷手游》中拥有众多的职业角色,其中包括战士、弓箭手和牧师,而不同的职业角色有着不同的定位,其中以输出为主,而坦克为辅,而这些角色都能够通过进化的方式来增强自身的能力。比如说战神的职业进阶,可以让战吼效果的持续时间增加2秒,并且在释放技能的时候,可以增加自身的攻击伤害。 战士进阶之后,不仅能够提高自身的物理攻击力,而且还可以提高自己的最大生命值,同时还可以获得一个技能,能够将自己的战意值提升到一定程度,而进阶之后的战歌可以获得更多的技能效果和伤害能力。此外战士还可以通过技能的重置来让自己的技能CD变短、减少冷却时间、提升自身伤害能力等,从而加强自身的战斗实力。 而战骑和圣骑士的进阶,则可以让战马和骑兵进化成圣骑士以及皇家骑士,而战骑和圣骑士的进化,则是可以让战骑和剑灵以及游侠进化成为斗士或者是狂暴者,而斗士和狂暴者的进阶,则可以让斗士和狂暴者进化的属性得到大幅度地提高。 【副本玩法】 除了职业进阶之外,副本也是一个可以提供大量的装备资源以及经验奖励的玩法,而对于装备来说,除了装备以外还能够通过进阶来进一步强化自身属性,而进阶的装备需要进化石。而进阶的材料主要分为两种,分别为普通装备和珍贵装备,两种进阶石都是可以通过副本来获取,而珍稀装备则可以通过任务和活动获取,当然了,最简单粗暴的方法,还是直接使用龙币在商城里面购买,不过价格还是相对昂贵的。 全新玩法曝光!龙之谷手游菜鸟黑龙2带来全面进化! 龙之谷手游自公测以来一直受到广大玩家的欢迎,但是在游戏中有很多的细节需要我们去注意。其中黑暗女王就是其中之一。而新版本也即将上线。对于很多刚进入游戏的小伙伴来说黑暗女王将会是全新的玩法,那么黑暗女王要怎么玩呢?下面我们就一起来看下吧! 黑暗女王,又称“白眼”,她与黑暗女王之间有着不可言说的羁绊。当光明和黑暗的力量交织在一起时,她将获得新的生命和力量,并且成为一个强大的存在。 【黑龙进化】 黑龙2在技能设定上和前作有着较大不同,黑龙2将是黑暗女王的核心技能之一,在技能上与黑暗女王有着异曲同工之妙,不过黑龙2的技能释放方式却有非常大的差异。 黑光:黑龙2的技能为黑暗冲击,黑龙1的释放方式为向前方发射3道闪电攻击。 召唤黑球:黑龙2的技能为召唤黑龙2的分身,分身存在时间为20秒。 【新增内容与优化】 1、新增职业平衡性调整 在《龙之谷》中,职业平衡性调整将对部分职业产生影响,如剑圣的移动速度将被削弱至极致,而弓箭手将被限制在移动速度和攻击范围之内。 此外,职业间的战斗将变得更加激烈、紧张刺激,职业间相互之间的配合也将更加灵活多变。 2、新增副本 黑暗女王的挑战副本新增了无尽深渊,副本的难度将会大幅提升。 黑暗女王的挑战副本中不仅有大量怪物和boss可以打败,还有丰富的道具奖励。 无尽深渊的怪物实力大大增加,而且有大量的经验和金币奖励,所以想要挑战黑暗女王的玩家一定要做好准备。 无尽深渊的难度更高,但是奖励也会更丰厚。 3、新增装备 除了以上这些,新增的龙玉装备也可以为玩家提供强大的战力。 龙玉装备的属性会直接加到角色的身上,所以如果玩家想要给自身角色穿戴龙玉装备的话,建议选择龙玉套装进行穿戴,以提升自身的战力。 4、新增坐骑 坐骑系统是龙之谷中的特色系统,目前只开放了一个坐骑,那就是黑暗神殿的坐骑。 【全新体验,超强惊喜】 除了以上的更新之外,《龙之谷》手游还推出了一系列的新玩法。在游戏中玩家们将获得全新的坐骑——黑暗神殿。黑暗神殿是一只由精灵幻化的巨型Boss,拥有高额伤害和超高血量。玩家们可以通过击杀它来获取坐骑。此外黑暗神殿还会产出一些稀有的材料。 除了这些全新内容外,本次新资料片还将带来更多精彩的内容。除了新角色卡西乌斯登和新宠物艾米莉亚等诸多名新人物加入,

网游攻略 2024-02-14
学乐高究竟能给孩子带来什么

学乐高究竟能给孩子带来什么

乐高积木是儿童喜爱的玩具,发明者是克里斯第森先生,乐高需要靠小朋友自己动手动脑,可以拼插出变化无穷的造型,令人爱不释手,被称为“魔术塑料积木”。学乐高带给孩子的好处:学乐高可以让孩子的思维方式、观察力和专注力得到培养,玩乐高对于孩子的性格培养也有很大的帮助,孩子遇到问题,有寻找办法,解决办法的能力,孩子自己动过手、失败过,他的忍耐力、 抗挫折能力、合作能力都会强很多。孩子从乐高中获得的良好思维逻辑,可以为以后学习数学打下基础。学习乐高可以培养孩子主动学习的习惯,树立正确的时间观念,养成自我管理习惯。每节课后总结作品,教具分类放回原处。有的时候孩子们需要团队协作完成一个复杂作品,从而让孩子知道合作的意义和重要性,学会独立思考和团队合作能力。

育儿知识 2024-02-14
失眠组仍在努力 将尽快带来《蜘蛛侠2》新游戏+消息

失眠组仍在努力 将尽快带来《蜘蛛侠2》新游戏+消息

最近,一些玩家在推特上向失眠组询问了关于《 漫威蜘蛛侠2 (Marvels Spider-Man 2)》新游戏+的更多细节。失眠组回应称:“我们的团队仍在努力。我们将尽快分享更多消息。” 目前,Insomniac Games尚未确认新游戏+的确切发布日期,仅表示将于2024年初的某个时间推出。上周,工作室回应了粉丝要求更新新游戏+而发起的“网络骚扰”,并称这些行为是幼稚滑稽的。

游戏资讯 2024-02-08
手机会给孩子带来什么影响

手机会给孩子带来什么影响

在数字化时代,手机已经成为我们日常生活不可或缺的一部分。智能手机无疑为孩子提供了便捷的学习资源和丰富的娱乐内容,但它也带来了一系列挑战,包括影响学习效率、身体健康、社交能力和家庭关系。作为家长,在享受技术带来的便利的同时,也需要警惕这些潜在的负面影响,采取适当的措施,确保孩子在健康和有益的环境中成长。一、智能手机的普及与挑战由于科技的迅速发展,智能手机已经成为人们生活的一部分。孩子们沉迷于手机屏幕,对学习、身体健康和社交能力可能造成了前所未有的挑战。二、认知发展与学习效率手机提供了丰富的学习资源和工具,有助于孩子获取信息和知识。但过度依赖手机也可能对孩子的认知发展产生不利影响。长时间盯着屏幕会分散孩子的注意力,减少深度学习和思考的机会。此外,过多的线上娱乐内容可能导致孩子们的学习效率降低,影响学习成绩。三、身体健康与运动能力长时间使用手机会减少孩子进行户外活动的时间,限制他们的身体运动,从而影响身体健康。过度使用手机还可能导致视力问题、颈椎问题和其他与久坐相关的健康问题。运动能力的缺乏不仅影响孩子的身体发育,还可能影响他们的心理健康和社会适应能力。四、社交能力与情感发展智能手机的广泛使用改变了人们的社交方式。对孩子来说,过度依赖手机进行社交可能限制了他们面对面交流的机会,影响他们学习非语言交流的能力,如肢体语言和面部表情的解读。此外,网络社交虽然便捷,但也缺乏真实的情感交流和深度,这可能影响孩子情感认知的发展和人际关系的建立。五、家庭关系与亲子互动手机的普及也影响了家庭内的互动方式。家长和孩子都沉迷于各自的屏幕,可能会减少家庭成员之间的交流和互动,影响亲子关系的建立和家庭氛围的营造。缺乏有效的沟通和亲密的家庭关系可能会使孩子感到孤独和被忽视。六、家长的角色与策略面对智能手机给孩子带来的挑战,家长需要扮演关键的角色。家长可以通过设定规则限制孩子使用手机的时间和内容,鼓励孩子参与户外活动和家庭互动,监督孩子的手机使用情况,以及作为榜样,自己减少对手机的依赖。通过这些措施,家长可以帮助孩子平衡线上和线下的生活,促进孩子全面健康的成长。

育儿知识 2024-02-07
原生家庭环境会给一个人带来哪些影响

原生家庭环境会给一个人带来哪些影响

原生家庭环境会给一个人带来个人认知和行为方式和社会关系的影响。家庭是成长的摇篮,虽然有时候会受到家庭环境的影响,但是仍然可以选择自己的人生道路,走出家庭的范围,创造属于自己的成长之路。了解原生家庭对我们的影响,并针对性地发展我们的认知和技能,既可以帮助我们克服影响,也可以使我们养成更好的人际关系和自我认知。让我们一起去追求属于自己的光辉。在我们公司,有一位实习生名叫小曼。她总是展现出一种温和亲切的态度,让大家感到十分舒适。当她向我们透露她的母亲是一个非常强势、情绪激烈的人时,我们都感到十分吃惊。“我从小就一直受到母亲的磨难。”她诉说着,“有一次,她在做饭的时候边骂我,我试图说句话,她转身就把菜刀朝我砍了过来。菜刀离我耳朵大概只有3厘米远,我还能够感受到菜刀划过去的风。那时候,我就下定决心要做一个不同于母亲的人。”在和男友的一次争吵中,小曼发现自己似乎并没有成功地摆脱家庭背景的影响。尽管她对陌生人的态度亲切,但在与亲近的人发生冲突时,她也会像母亲一样情绪激烈地砸桌子、扔手机。无论如何反抗,好像来自原生家庭的影响始终难以完全消失。成长环境对我们的影响有太多的潜移默化,可能会深深地影响我们的认知能力、人际关系、社会功能、人格特质、处理事情的方式,甚至是交朋友的标准。原生家庭对我们每个人的成长都有着深远的影响。家庭是一个人成长的基础,在家庭环境中形成的认识方式、价值观、人际关系模式等都对我们的生活和工作产生着很大的影响。“我们根本意识不到”的是,原生家庭可能给我们留下了许多微妙的影响,这些影响将深入我们的内心并影响我们的性格和行为,甚至我们自己都没有想到。一、原生家庭环境对个人认知和行为方式的影响原生家庭环境不仅仅是生活空间的存在,它还是一个人成长的社会环境和文化传承体系。从出生起,我们就沉浸在这样一个环境中,接受各种各样的影响,很多时候是不自觉地接受。家庭教育、父母的言行举止、家庭氛围、家庭文化……这些因素都对我们的思维模式和行为方式产生深远的影响。这些影响来自我们童年时期所处的环境和家庭教育,却也有可能带来误导和不良影响。儿时的经验对于一个人的成长有着至关重要的作用,即使在成年后,很多人也难以逃脱家庭环境的影响。有时候家庭环境带给我们的刺激和教育,是我们以后无法想象的。甚至,我们可能没有意识到这些教育方式和思维方式的不良影响,而这些影响却深深地潜藏在我们的行为和思维之中。二、原生家庭对社会关系的影响家庭中塑造我们的不仅仅是认知方式和行为方式,也包括了在社会中交往所需要的各种能力。例如,如果在家庭中受到了拒绝、排斥、冷漠的态度,这可能会导致我们在未来的社交中遇到各种难题。而如果在家庭中得到了适当的关注和积极的激励,美好的家庭氛围也可以促进我们成为一个更有活力、更友好和更外向的人。在社会交往中,人们往往依赖于各种心理技巧,如交流能力、情感控制和沟通技巧等。正是这些技能,让我们在社会活动中保持着一定的交际网络。若此类技能在家庭中无法得到锻炼,就会对我们进入社会产生障碍。社会交往技能的锻炼,除要依赖于家庭环境外,还需要自己的去尝试和实践。*需要不断地应对社会交往中的各种挑战,学会如何与人沟通,如何建立亲密关系,以及如何发展长期的友谊。三、如何超越原生家庭的影响原生家庭的影响是深入骨髓的,甚至在许多情况下都是不可扭转的。但是,尽管无法改变我们的成长经历,可以做到选择自己的道路,让自己焕发出洋溢的生命力。了解原生家庭的影响并理解这些影响是如何形成的,可以帮助改变自己的认知方式。需要找到并分析那些可能会对我们产生不良影响的行为模式和思维方式,从而开启一条新的成长道路。此外,还可以去触碰自己想探索的领域、参与自己感兴趣的活动和与志同道合的人相处,这样可以逐渐建立自信心。

育儿知识 2024-02-03
阴阳师手游:揭秘独特副本玩法,体验全新战略卡牌乐趣(腾讯阴阳师手游全新门派终于来袭,震撼亮相带来全新战斗格局)

阴阳师手游:揭秘独特副本玩法,体验全新战略卡牌乐趣(腾讯阴阳师手游全新门派终于来袭,震撼亮相带来全新战斗格局)

阴阳师手游最近迎来了两周年活动,其中推出了全新门派玩法。新的门派玩法将开启全新的战斗格局,带来全新的卡牌游戏乐趣。在这次活动的剧情中,将揭开全新门派的故事背景。玩家们将可以跟随音乐节奏,在游戏中体验全新的卡牌游戏玩法。 首先介绍全新的副本玩法,该玩法属于“探索”类型,包含两个章节,分别是【见闻】和【狩猎】。 在剧情中,玩家将扮演阴阳师并与其他玩家进行对战。在战斗过程中,将有机会获得御行达摩、神秘符咒等道具作为奖励。通过完成这个副本,玩家还将解锁式神觉醒功能以及特别任务。 副本包含四个章节,除了主线剧情外,还有特殊的挑战副本和随机事件。在结界突破战斗之后,玩家可以选择不同的难度进行战斗。每个大关卡都包含一个boss。 在战斗时,玩家需要根据自己的情况选择合适的阵容和御魂搭配,以便击败boss。 在探索副本中,包含三个副本,分别是【山兔之怒】和【年兽夜叉】。完成山兔之怒副本后,将获得大量经验值和金币加成。年兽夜叉副本掉落御祝和蓝票,但由于难度较大,通关较为困难。 在“狩猎”部分,将出现一个boss——八岐大蛇,拥有特殊的攻击方式和防御能力。 在组队玩法中,玩家可以与好友一同参与战斗,查看队友的状态、属性和等级等信息。 近期,腾讯阴阳师手游迎来全新版本更新,全新门派也将震撼亮相上线。这次更新将带来新的战斗格局。 新版本中新增了三个主角——晴明、神乐和源博雅以及一个新角色——山兔。 另外,全新加入的式神包括妖刀姬、鬼使黑和鬼女红叶。妖刀姬原型和名字有一定联系,鬼使黑拥有高伤害的SSR级输出能力,而鬼女红叶则具有控制技能,能够对敌方单位造成眩晕效果。

网游攻略 2024-02-01
绝地求生正版手游新特色大揭秘,FPS玩法震撼升级(打破传统极限!绝地求生正版手游带来全新沙盘竞技玩法)

绝地求生正版手游新特色大揭秘,FPS玩法震撼升级(打破传统极限!绝地求生正版手游带来全新沙盘竞技玩法)

绝地求生正版手游即将迎来一次更新,将带来全新的沙盘竞技玩法“终结者”,并推出全新的枪械武器、时装道具等内容。11月10日,玩家将在刺激战场上体验不一样的射击快感! 《绝地求生:端游》(PUBG)由腾讯天美工作室群自研打造,是网易代理的第一款国内首创多人联机对战手游。游戏以高品质画面和逼真的物理引擎技术支持著称。在游戏中,玩家将以最快的速度收集武器装备,并在短时间内获得最终胜利,通过淘汰对手的方式获取积分,提升自己的段位。 此次更新将加入全新的地图——米拉玛,包含4个小岛,地图上分布着8种不同颜色的小树苗,以及各种可掉落种子的绿色植被遮盖物。此外,游戏中设计了专属的载具,玩家可利用摩托车快速移动或翻越复杂地形,逃离危险。 游戏还为所有用户提供了多种类型的选择。玩家可以选择跳伞降落到其他区域、搜索资源或是寻找物资,通过拾取地上的空投箱、补给包、医疗用品等物品来恢复健康值,使用药品回复满血并补充能量。 打破传统极限!绝地求生正版手游带来全新沙盘竞技玩法 绝地求生正版手游中推出全新的沙盘竞技玩法。玩家将化身成一队四人队伍进入战场,通过各种方式进行对抗。在比赛中,玩家需要在限定时间内尽可能多的生存到最后,最终获得胜利。 经典爆破战:极致体验极限操作 经典爆破战作为《绝地求生》正版手游中的经典PVE玩法,为单局游戏。玩家需要以队伍的形式进入到一个大地图中,争夺资源来升级自己的装备,获得更丰富的战斗体验。 娱乐模式:刺激团竞沙盘竞技 在该模式下,地图上会出现很多不同种类的障碍物。玩家需要利用这些障碍物进行跑圈,占据有利位置,同时拾取武器资源箱。玩家也可以选择跳伞后直接跳到该地点。 沙盘竞技:趣味休闲欢乐多模式 沙盘竞技是绝地求生端游中的一种新模式,为双人或四人的组队竞技玩法。玩家需要通过游戏中获得的积分来兑换不同的奖励物品。在沙盘竞技活动中,玩家有机会赢取丰厚奖励。

网游攻略 2024-01-31
很宝藏的款款好用的表情合集 微笑中透露着无语

很宝藏的款款好用的表情合集 微笑中透露着无语

经典快乐的表情怎么能不存图呢,给我们的聊天带来很多不一样开心的嗨皮表情,收获不一样的开心呀。

微信头像 这组宝藏表情真的是每一款都很好用的哦,能给我们的聊天带来很多不一样的开心感,存上嗨皮聊天用去吧。
最近很的眼镜小猫表情 每张都很快乐系列的表情合集

最近很的眼镜小猫表情 每张都很快乐系列的表情合集

经典表情总是多很多快乐的哦,眼镜小猫的表情会给我们聊天带来与众不同的开心吧。

微信头像 这组眼镜小猫表情分享给你们啦,能给我们聊天带来许多开心系列的搞怪型的表情,让我们聊天多很多快乐的哦。
写论文搞怪系列表情包 想破头也不知道这论文咋写

写论文搞怪系列表情包 想破头也不知道这论文咋写

学术混子们这组关于写论文的表情分享给你们啦,你们是不是也跟这组表情一样因为写论文而头疼了。

微信头像 每当带来毕业季写论文真的是一件很头疼的事情,这组专为写论文吐槽的表情分享给你们聊天用去吧。
< 1 2 3 >