星期天写论文时候好寂寞啊游戏出哪些题

(铁板黄焖鸭)
第三方登录:你在美国经历过哪些事情的体验不如中国? - 知乎<strong class="NumberBoard-itemValue" title="2被浏览<strong class="NumberBoard-itemValue" title=",858,984分享邀请回答32 条评论分享收藏感谢收起3222 条评论分享收藏感谢收起&p&电器爱好者闻讯而来。&br&&br&先说我的专业IT里面的东西&br&首先是这货,群晖NAS,再也不需要什么云了,我有私有云。&br&&figure&&img data-rawheight=&1280& src=&https://pic4.zhimg.com/50/v2-0c20a9389fcf5eacbbf727_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic4.zhimg.com/50/v2-0c20a9389fcf5eacbbf727_r.jpg&&&/figure&&br&&br&&br&然后是这个,Ruckus优科无线wifi AP R710,在家里乱跑再也不会掉线&br&&figure&&img data-rawheight=&1280& src=&https://pic4.zhimg.com/50/v2-3e0e38b43e6a26807cb49fbed003622e_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic4.zhimg.com/50/v2-3e0e38b43e6a26807cb49fbed003622e_r.jpg&&&/figure&&br&&br&&br&戴尔XPS15 4K屏幕版以及苹果MacBook pro,虽然都不怎么用,但是看到就有幸福感。&br&&figure&&img data-rawheight=&1707& src=&https://pic2.zhimg.com/50/v2-82fffcff6dc7a2_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/50/v2-82fffcff6dc7a2_r.jpg&&&/figure&&br&&br&&br&微软surface pro,接投影机做播放器,拿起来就是平板看片&br&&figure&&img data-rawheight=&1280& src=&https://pic4.zhimg.com/50/v2-80bec6d302c39c_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic4.zhimg.com/50/v2-80bec6d302c39c_r.jpg&&&/figure&&br&&br&&br&&br&索尼 PS4,最多的快乐&br&&figure&&img data-rawheight=&1280& src=&https://pic1.zhimg.com/50/v2-591ce8ed5ba_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic1.zhimg.com/50/v2-591ce8ed5ba_r.jpg&&&/figure&&br&&br&&br&奥图码HD50投影机,在我卧室里,床对面投出一个140寸屏幕,晚上睡觉前在床上看个电影或者玩个PS4,不能更爽!&br&&figure&&img data-rawheight=&1280& src=&https://pic1.zhimg.com/50/v2-f8e2fada4a350_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic1.zhimg.com/50/v2-f8e2fada4a350_r.jpg&&&/figure&&br&&br&&br&大疆Mavic pro,出门玩的吸睛利器&br&&figure&&img data-rawheight=&1707& src=&https://pic3.zhimg.com/50/v2-48820fca6ae3ca02f5a22b_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/50/v2-48820fca6ae3ca02f5a22b_r.jpg&&&/figure&&br&&br&&br&索尼7.1声道环绕声无线耳机,有时候看电影玩游戏怕音响吵到别人,就用它,效果杠杠的。&br&&figure&&img data-rawheight=&1280& src=&https://pic2.zhimg.com/50/v2-8ade022d7e5f72b6b7724720cee753ba_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic2.zhimg.com/50/v2-8ade022d7e5f72b6b7724720cee753ba_r.jpg&&&/figure&&br&&br&&br&电脑桌上的KEF300A wireless书架箱,用电脑时顺便听听音乐,同轴喇叭定位准到感觉歌手就在你眼前触手可及。这货支持苹果AirPlay。&br&&figure&&img data-rawheight=&1707& src=&https://pic2.zhimg.com/50/v2-cb233d20b9a9fed5a16abd5e831e98c6_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/50/v2-cb233d20b9a9fed5a16abd5e831e98c6_r.jpg&&&/figure&&br&&br&&br&&br&再说说厨房里的&br&虎牌保温壶,定温70度,喝热水不怕烫掉皮。&br&&figure&&img data-rawheight=&1707& src=&https://pic1.zhimg.com/50/v2-ddddb5e93c_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/50/v2-ddddb5e93c_r.jpg&&&/figure&&br&&br&&br&松下SPX105电饭煲和PM105面包机。&br&电饭煲有多好我说不上来,我这十几年一直都用最高档的电饭煲做饭,别人家的饭我一般都吃不下去。&br&&figure&&img data-rawheight=&1280& src=&https://pic2.zhimg.com/50/v2-df814db129e093d1a3ffad_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic2.zhimg.com/50/v2-df814db129e093d1a3ffad_r.jpg&&&/figure&&br&&br&&br&日立NY3000水波炉&br&微波炉、烤箱、蒸炉、空气炸锅全是她。&br&&figure&&img data-rawheight=&1280& src=&https://pic3.zhimg.com/50/v2-5bd9f1c5e025d12bb12a0_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic3.zhimg.com/50/v2-5bd9f1c5e025d12bb12a0_r.jpg&&&/figure&&br&&br&&br&在传统煤气灶旁边再安装一个松下嵌入式电磁炉,煮饭时就有三个炉头了。煮汤和高压锅蒸煮尤其省事,因为可以定时自动关闭。&br&&figure&&img data-rawheight=&1707& src=&https://pic4.zhimg.com/50/v2-a8f19cadcc0bfbfef68e4_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/50/v2-a8f19cadcc0bfbfef68e4_r.jpg&&&/figure&&br&&br&&br&剩下的以后再慢慢补充。&br&&br&还有一个,小米扫地机器人,我说他一点都不输给irobot不知道你们信不信。&br&&figure&&img data-rawheight=&1707& src=&https://pic4.zhimg.com/50/v2-dba5c46cf1d3ae18dcfc_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/50/v2-dba5c46cf1d3ae18dcfc_r.jpg&&&/figure&&br&&br&继续补充一个&br&小米智能家居系统&br&&figure&&img data-rawheight=&1707& src=&https://pic3.zhimg.com/50/v2-fe5dcfc331fd5a1_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/50/v2-fe5dcfc331fd5a1_r.jpg&&&/figure&&br&&br&你看到的这个是智能家居的控制中心,也是一个夜灯,也是一个门铃。&br&配合他的各种传感器,我为他配套了几个门窗感应器、几个人体感应器、几个开关、温湿度传感器等等,从此它就能够检测很多项目并通过简单的编程实现遥控其他很多小米设备的功能,比如说夜晚感应到人开灯(小米灯泡),人离开自动关灯、温度到达某个范围了且感应到人了自动开风扇(小米风扇),有人开门摄像头拍照上传等等等等。这玩意小米可能卖得不太好,但确实很好炫耀啊!&br&&br&&br&再加一个,有点偏门的。德国嘉丁拿自动浇灌系统。&br&&figure&&img data-rawheight=&960& src=&https://pic1.zhimg.com/50/v2-0a337c6221c7_b.jpg& data-rawwidth=&720& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic1.zhimg.com/50/v2-0a337c6221c7_r.jpg&&&/figure&&br&&br&&br&图上是控制器,这个自动浇灌系统是由控制器、土壤湿度感应器、缓释肥料添加器,管线以及各种喷头组成的。&br&土壤湿度感应器会实时探测土壤湿度,在探测到土壤干燥的时候,控制器会打开水阀,水流通过缓释肥料添加器以后经过管线和喷头给植物浇水。&br&我阳台种了十几棵火龙果、柠檬、无花果、百香果,还有季节水果小番茄、草莓,以及各种青菜,基本上都不需要很多关照,全靠自动浇灌,我每年都能收获一百多斤各种果子。&br&&br&好吧,大家都有兴趣我就继续发。&br&&br&oppo HA-2耳放和oppo PM-2耳机&br&我知道国内网上大家对oppo都是有成见的,但是我在外企工作,我了解到的国外,老外对oppo可都是赞不绝口呢,认为oppo生产了全世界最好的蓝光播放器。&br&蓝光播放器我是不需要了,但是这个耳机也是极好,听民谣、女声非常合适,声场略窄不像森海那么适合交响乐。&br&耳放可以插手机做解码器、做windows电脑和Mac电脑的声卡,还能给手机做充电宝。&br&&figure&&img data-rawheight=&720& src=&https://pic4.zhimg.com/50/v2-dbe1cad2eba13c249e7b8_b.jpg& data-rawwidth=&960& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic4.zhimg.com/50/v2-dbe1cad2eba13c249e7b8_r.jpg&&&/figure&&br&&br&&br&下面这个是AKG-k3003i,这个不用多说了,只是我的东西太多,真的听不到它两三次。&br&&figure&&img data-rawheight=&960& src=&https://pic3.zhimg.com/50/v2-e039bde5f307d5ccc185ff8fc19a5830_b.jpg& data-rawwidth=&720& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/50/v2-e039bde5f307d5ccc185ff8fc19a5830_r.jpg&&&/figure&&br&&br&继续吧,说摄影器材&br&佳能党的5D2和5D4,镜头脚架闪光灯那些太多太乱就不说了&br&&figure&&img data-rawheight=&1280& src=&https://pic2.zhimg.com/50/v2-e438f361ca23f34e004c_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic2.zhimg.com/50/v2-e438f361ca23f34e004c_r.jpg&&&/figure&&br&&br&&br&理光全景相机,这货拍照是360度无死角的,就是说它拍下来的是一张包含了上下左右前后的球形照片,观看的时候再滑动屏幕转动你要看的角度,旅游的时候或者出海开船的时候我喜欢用它拍照,别人都要各种取景变焦,我不用,拿出来吱一声拍好了(它的快门声音就是吱一声)。&br&&figure&&img data-rawheight=&1707& src=&https://pic3.zhimg.com/50/v2-de7e8d202edb9b2b51735_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/50/v2-de7e8d202edb9b2b51735_r.jpg&&&/figure&&br&&br&&br&奥林巴斯TG-3潜水相机。这货是潜水时用的,自身防水16米,加上防水壳之后50米,水下拍照效果出色。另外它还是一台超牛逼的微距相机,配合环形闪光灯,它可以把镜头贴着被摄物然后还能用最长焦对焦。拍蜻蜓的复眼算什么?它可以拍蚂蚁的腿毛!&br&&figure&&img data-rawheight=&1280& src=&https://pic3.zhimg.com/50/v2-ca08daeb9eafe29ac767504_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic3.zhimg.com/50/v2-ca08daeb9eafe29ac767504_r.jpg&&&/figure&&br&&br&&br&索尼RX100和徕卡D-LUX typ109&br&这些机器就是拍视频用的,徕卡可以拍4k视频,相比摄像机,他们的画面一点都不差,不过摄像机可以收录环绕声而这些机器都是立体声的,不过相比那个体积和重量,还是放弃环绕声会比较合算。&br&&figure&&img data-rawheight=&1152& src=&https://pic4.zhimg.com/50/v2-3d1e78bb16d20c_b.jpg& data-rawwidth=&2048& class=&origin_image zh-lightbox-thumb& width=&2048& data-original=&https://pic4.zhimg.com/50/v2-3d1e78bb16d20c_r.jpg&&&/figure&&br&&br&&br&&br&DXO one iPhone外接相机&br&它通过lightning口插到iPhone上,相当于升级了iPhone的相机。好在哪里?它用一英寸的底片和2000万像素,f1.8的光圈,这都是iPhone自带相机远远不及的,照相效果与索尼RX100没多大差别。&br&&figure&&img data-rawheight=&631& src=&https://pic4.zhimg.com/50/v2-2ad326a4d01fe2dead9826e_b.jpg& data-rawwidth=&1006& class=&origin_image zh-lightbox-thumb& width=&1006& data-original=&https://pic4.zhimg.com/50/v2-2ad326a4d01fe2dead9826e_r.jpg&&&/figure&&br&&br&好久没看这个帖子,忽然这么多赞还真是受宠若惊呢!&br&&br&再更新最近买回来又觉得好用的新电器吧。&br&&figure&&img data-rawheight=&1707& src=&https://pic4.zhimg.com/50/v2-d569be0b7aee2ffc20b377_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/50/v2-d569be0b7aee2ffc20b377_r.jpg&&&/figure&&br&Miele美诺的洗衣机烘干机,替代了以前的松下洗烘一体机。&br&洗烘一体机的问题在于烘干容量只有洗涤容量的一半,如果你的洗衣机8公斤,你要它洗完又直接烘干8公斤衣服,是不可以的,洗完后8公斤要分两次烘干。而洗烘分开就不存在这个问题。另外洗烘一体机它的烘干管道如果经常不使用的话,会同意发霉发臭,分体机不会。&/p&&p&关于美诺的洗衣机怎么样,以及现在的型号如何选择的问题,我写了一些详细的介绍在另外一个回答里了。&/p&&p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&&span class=&invisible&&https://www.&/span&&span class=&visible&&zhihu.com/question/2443&/span&&span class=&invisible&&1605/answer/&/span&&span class=&ellipsis&&&/span&&/a&&br&&/p&&p&&br&&/p&&p&&br&&figure&&img data-rawheight=&1280& src=&https://pic4.zhimg.com/50/v2-7e137b15b634b40fa55ac_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic4.zhimg.com/50/v2-7e137b15b634b40fa55ac_r.jpg&&&/figure&&br&这里有两个新设备,一个是西门子的洗碗机,一个是松下的煎烤箱。&br&洗碗机好多人都有介绍,我就不多说了。之前聚会时有个大佬跟我介绍它,我说我家有阿姨洗碗。他们说谁都有阿姨洗碗,但是洗碗机洗得干净啊!我买回来一试果然如此!&br&&figure&&img data-rawheight=&1707& src=&https://pic4.zhimg.com/50/v2-e18cb24afed185c9d449db9_b.jpg& data-rawwidth=&1280& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/50/v2-e18cb24afed185c9d449db9_r.jpg&&&/figure&&br&上面这个玻璃杯,是我小孩用了几年的牛奶杯,以前再怎么洗都是灰蒙蒙的,我还以为牛奶会腐蚀玻璃,结果给洗碗机一洗,像新的一样。&br&&br&松下这个煎烤箱有点意思,刚出来时卖5999,后来没人买降价到4999,没人买,又降价到3999,还是没人买,最后特价2999,我就下手了。&br&该机可以做烤箱可以做煎炉,它底下是电磁加热的一个很重的煎盘,上面是红外管。&br&&figure&&img data-rawheight=&1280& src=&https://pic4.zhimg.com/50/v2-a0d2bbbbf82ad93bae3e4_b.jpg& data-rawwidth=&1707& class=&origin_image zh-lightbox-thumb& width=&1707& data-original=&https://pic4.zhimg.com/50/v2-a0d2bbbbf82ad93bae3e4_r.jpg&&&/figure&&br&&br&用来煎牛排很合适,因为大铁盘子很好存热。&br&用来做鱼的话,两面会有不同,一面是煎的,一面是烤的。&br&&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/898496& target=&_blank& data-video-id=&& data-video-playable=&& data-name=&& data-poster=&https://pic4.zhimg.com/v2-9af58f37e87c134c9ebd3a.jpg& data-lens-id=&898496&&
&img class=&thumbnail& src=&https://pic4.zhimg.com/v2-9af58f37e87c134c9ebd3a.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/898496&/span&
&/a&&br&还有终于有空开始玩任天堂的Switch,塞尔达传说真的好。&figure&&img data-rawheight=&1427& src=&https://pic4.zhimg.com/50/v2-c38e11b7bd64e3deba33_b.jpg& data-rawwidth=&1903& class=&origin_image zh-lightbox-thumb& width=&1903& data-original=&https://pic4.zhimg.com/50/v2-c38e11b7bd64e3deba33_r.jpg&&&/figure&
电器爱好者闻讯而来。 先说我的专业IT里面的东西 首先是这货,群晖NAS,再也不需要什么云了,我有私有云。 然后是这个,Ruckus优科无线wifi AP R710,在家里乱跑再也不会掉线 戴尔XPS15 4K屏幕版以及苹果MacBook pro,虽然都不怎么用,但是看到就有幸福感。…
&figure&&img src=&https://pic4.zhimg.com/v2-16896cdb598dced1ec6a501_b.jpg& data-rawwidth=&1620& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1620& data-original=&https://pic4.zhimg.com/v2-16896cdb598dced1ec6a501_r.jpg&&&/figure&对于纽约人民来说,《欲望都市》最后几集简直是耻辱一刻:打死也不想离开曼哈顿(连布鲁克林都看不起哟)的典型纽约女孩儿Carrie,一听能去巴黎马上欢欣鼓舞 ╮(╯▽╰)╭&br&&br&一到酒店,Carrie从门口开始就一副『哇塞』的模样,傲娇的纽约气质完全不见;进了房间就开始360度凹造型,游客到不能再游客了,还得让埃菲尔铁塔出现在每一个背景……简直太坍纽约人的台了!!!&br&&figure&&img src=&https://pic3.zhimg.com/v2-dc6edecd4abc2f_b.jpg& data-rawwidth=&1024& data-rawheight=&576& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&https://pic3.zhimg.com/v2-dc6edecd4abc2f_r.jpg&&&/figure&&br&(画外音:啊,巴黎,我来了 )&br&&figure&&img src=&https://pic3.zhimg.com/v2-3fe03b7c7488f_b.jpg& data-rawwidth=&620& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic3.zhimg.com/v2-3fe03b7c7488f_r.jpg&&&/figure&还好最后靠着Mr.Big扳回一城:我们的New York girl终于哭哭啼啼回到了故乡,一边吃着熟悉的brunch一边说了句:『我再也不离开纽约了』。还好平时一惯刻薄的纽约,有时候倒是比大多数男人仁慈,能让你这么变心又回头啊~&br&&br&但其实这种行为我也不大理解得了:首先,巴黎虽好,但她住的酒店真是没有到『盖章认证』或『声名显赫』的级别,实在没有如此惊喜的必要……其次,代表纽约人说一句,我们不是没有高颜值的性感酒店的好嘛?!虽然Carrie天天住公寓,但那些酒店就在纽约,哪儿都没去。&br&&br&为了证明此言非虚,今天我就&b&选出了4个主题、8家不同风格的精品酒店、对比2座城市,&/b&让你看看巴黎和纽约不一样的性感与风情。&br&&figure&&img src=&https://pic2.zhimg.com/v2-e87c7657ebe85d235f234c4cdc6e1fdd_b.jpg& data-rawwidth=&3000& data-rawheight=&2005& class=&origin_image zh-lightbox-thumb& width=&3000& data-original=&https://pic2.zhimg.com/v2-e87c7657ebe85d235f234c4cdc6e1fdd_r.jpg&&&/figure&也许最后还是回到那句大俗话,其实爱对了人,滚哪儿的床单不是滚,住什么酒店不是住?&br&&br&……逗你的,你还真信了啊?&br&&br&树立一个小目标,有生之年去一次这样的酒店滚床单吧!!从无性婚姻到一夜七次不是梦(大雾)&br&&p&&b&1. &/b&&b&极尽奢靡之能事&/b&&br&&/p&&p&&b&&u&巴黎 Maison Souquet&/u&&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-adfc79d506d9ba008e970f_b.jpg& data-rawwidth=&1200& data-rawheight=&580& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&https://pic1.zhimg.com/v2-adfc79d506d9ba008e970f_r.jpg&&&/figure&&p&要说谁比谁更香艳,浪漫的法国人历史上的红磨坊、康康舞、香颂大概分分钟就甩开美国一百街了!&/p&&p&Maison Souquet就是一家坐位于蒙马特区、离红磨坊几步之遥的精品酒店,酒店设计重现了美好年代(Belle ?poque)的活色生香。酒店没有门面,但门口挂着的两盏红灯笼留着当年的印记。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-3b611ca38ac20bd0b48ffc0_b.jpg& data-rawwidth=&2000& data-rawheight=&1337& class=&origin_image zh-lightbox-thumb& width=&2000& data-original=&https://pic3.zhimg.com/v2-3b611ca38ac20bd0b48ffc0_r.jpg&&&/figure&&p&至于你问我怎么个活色生香法?我会说,什么叫&b&眼睛会高潮&/b&你们知道吗。。。设计师Jacques Garcia来头不小,自己就是法国贵族的后裔,擅长把中西方和古典与现代完美糅合,对家具也是精挑细选,无论是公共区域随处可见的丝绸、地毯、油画和艺术品,客房内的古董木制和科尔多瓦皮革家具,还是全套的爱马仕卫浴产品,总之就是怎么奢靡怎么来!&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e273e3744bcba3f24ec3eb_b.jpg& data-rawwidth=&1200& data-rawheight=&835& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&https://pic4.zhimg.com/v2-e273e3744bcba3f24ec3eb_r.jpg&&&/figure&&p&房间不多,一共20间,包括14个双人间、4个套房、2个四人公寓。&b&如果你看着看着有种『咦,怎么那么像妓女闺房』的感觉,不要怀疑!这确实是设计师的初衷!&/b&四人公寓就分别以法国历史上著名的交际花La Pa?va和Liane de Pougy命名~&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-bb79bf87ee8a5b19aeb64bf06bef6eb6_b.jpg& data-rawwidth=&1101& data-rawheight=&730& class=&origin_image zh-lightbox-thumb& width=&1101& data-original=&https://pic1.zhimg.com/v2-bb79bf87ee8a5b19aeb64bf06bef6eb6_r.jpg&&&/figure&&p&酒店地下还有个土耳其式的澡堂(设计师你这么跳tone这样好吗?),浴室天花板是一片星空。据说这家还有私人天体spa,你们快去承包呀。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-00aadfe480dae313bd1c0b64f46b6e20_b.jpg& data-rawwidth=&2000& data-rawheight=&1335& class=&origin_image zh-lightbox-thumb& width=&2000& data-original=&https://pic4.zhimg.com/v2-00aadfe480dae313bd1c0b64f46b6e20_r.jpg&&&/figure&&p&总之,号称自己是『享乐主义者天堂』的Maison Souquet,确实还原了『放荡不羁的名流贵族寻欢作乐的巴黎』。&/p&&p&这样的巴黎太美了,恐怕连美国作者菲茨杰拉德笔下的盖茨比都有它的影子。&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-f3b024b27e6d8fb0cefa_b.jpg& data-rawwidth=&1506& data-rawheight=&1005& class=&origin_image zh-lightbox-thumb& width=&1506& data-original=&https://pic2.zhimg.com/v2-f3b024b27e6d8fb0cefa_r.jpg&&&/figure&&u&&i&价格:$350起&/i&&/u&&/p&&p&&u&&i&地址:10 Rue de Bruxelles, 75009 Paris, France&/i&&/u&&/p&&br&&p&&b&&u&纽约 Baccarat Hotel New York&/u&&/b&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-45fd6b70b6ffa1b745699a_b.jpg& data-rawwidth=&960& data-rawheight=&430& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic4.zhimg.com/v2-45fd6b70b6ffa1b745699a_r.jpg&&&/figure&&p&相比之下,纽约的奢华风酒店就有种&b&『我是暴发户!快睡我快睡我』&/b&的即视感。。。如果说Maison Souquet是小家碧玉,那么这家叫Baccarat Hotel的酒店就是暴发户中的战斗机。&/p&&br&&p&酒店位于曼哈顿中城的一栋50层的高楼内,有114间套房+客房,坐看中央公园、帝国大厦、克莱斯勒大厦等热门地标。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2ffdcac7f2d535c2cd241bc1f4139f19_b.jpg& data-rawwidth=&1000& data-rawheight=&750& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-2ffdcac7f2d535c2cd241bc1f4139f19_r.jpg&&&/figure&&p&&b&颜值是靠华丽丽的水晶撑起来的!&/b&说是在纽约,其实却是法国主打水晶制品的奢侈品品牌巴卡拉(Baccarat)开设的第一家酒店,各种壕气枝型水晶吊灯壁灯、从法国巴卡拉工厂运来了1.5万个水晶器皿做装饰还不算,每间房间都有水晶装饰,别名&b&水晶宫。。。&/b&(你去砸个水晶碗试试,看他们揍不揍你?)&/p&&figure&&img src=&https://pic2.zhimg.com/v2-cb58ded71c07ddddc241d_b.jpg& data-rawwidth=&1020& data-rawheight=&757& class=&origin_image zh-lightbox-thumb& width=&1020& data-original=&https://pic2.zhimg.com/v2-cb58ded71c07ddddc241d_r.jpg&&&/figure&&p&设计风格倒是充满了纽约简约利落的都市气息,黑白的主基调很大气,而从无处不在的水晶和零星可见的艺术品中也看得到优雅的法式生活方式,总之闪瞎我的狗眼!&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-24ef484a60f5a9e733dba7_b.jpg& data-rawwidth=&2000& data-rawheight=&1500& class=&origin_image zh-lightbox-thumb& width=&2000& data-original=&https://pic1.zhimg.com/v2-24ef484a60f5a9e733dba7_r.jpg&&&/figure&&p&室内设计也了不起,都是叫得出名字的:由巴黎的Gilles & Boisier设计的现代风格木制和钢制家具,羊绒床罩,还有意大利奢侈品公司马肖尼(Mascioni)定制的织品,南美洲的硬木地板,白玛瑙的镜台。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-795ba4bb102c9ca02ccdbdb08e1a3538_b.jpg& data-rawwidth=&891& data-rawheight=&594& class=&origin_image zh-lightbox-thumb& width=&891& data-original=&https://pic1.zhimg.com/v2-795ba4bb102c9ca02ccdbdb08e1a3538_r.jpg&&&/figure&&p&至于酒店的其他设施,虽然Maison Souquet有爱马仕的洗浴,但我觉得Baccarat Hotel靠全美第一家Spa de La Mer能赢!&/p&&p&不过说到底,虽然是在纽约的精品酒店,最后拼的到底还是法式奢侈啊。。。&/p&&br&&p&&u&&i&价格:$1000起&/i&&/u&&/p&&p&&u&&i&地址:28 W 53rd St, New York, NY 10019&/i&&/u&&/p&&br&&p&&b&2. 都市小情歌&/b&&/p&&p&&u&&b&巴黎 H?tel Daniel Paris&/b&&/u&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d76dd669beaf_b.jpg& data-rawwidth=&1400& data-rawheight=&934& class=&origin_image zh-lightbox-thumb& width=&1400& data-original=&https://pic1.zhimg.com/v2-d76dd669beaf_r.jpg&&&/figure&&p&在巴黎的精品酒店,既有保留法国文化痕迹的皇宫式的,也有刮起近年性冷淡设计风潮的极简式的。而&b&这家Hotel Daniel却是开出了一条『我为我自己代言』的新路子。&/b&&/p&&p&Hotel Daniel的酒店主是黎巴嫩人,特别喜欢东方浪漫,于是就用在亚洲旅行时一件件收来的古董家具把香榭丽舍大道附近的这个奥斯曼风格建筑填满了!一走进酒店,花园主题的大厅里贴着手绘花朵墙纸,挂着中国名画,摆着屏风和竹帘,这架势一看就是&b&法兰西风情和亚洲主题的混搭!&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fdc9d65a835d6c9dae08_b.jpg& data-rawwidth=&1000& data-rawheight=&666& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic4.zhimg.com/v2-fdc9d65a835d6c9dae08_r.jpg&&&/figure&&p&酒店一共5层,只有26个房间,每间都是满满&b&田园风&/b&,在热门的游客区竟然还营造出了一种家的感觉~&/p&&figure&&img src=&https://pic3.zhimg.com/v2-f81cd86410bbdb59d2ef3d_b.jpg& data-rawwidth=&620& data-rawheight=&349& class=&origin_image zh-lightbox-thumb& width=&620& data-original=&https://pic3.zhimg.com/v2-f81cd86410bbdb59d2ef3d_r.jpg&&&/figure&&p&很多人不喜欢顶楼的老虎窗,觉得空间局促,但Hotel Daniel&b&偏是把豪华房和套房放在了最上面&/b&,而透过套房的天窗就能看到埃菲尔铁塔。我觉得这种感觉别有情调,好像在一个隐秘的地方俯瞰巴黎,整个城市都是我的!&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d236d1f2fdef_b.jpg& data-rawwidth=&1600& data-rawheight=&1067& class=&origin_image zh-lightbox-thumb& width=&1600& data-original=&https://pic1.zhimg.com/v2-d236d1f2fdef_r.jpg&&&/figure&&p&据说Hotel Daniel还有被&b&法国《费加罗报》评为排名第一的下午茶&/b&,也是你们喜欢的三层!这家甜点由著名的甜点厨师Sebastien Gaudard负责,追求把各种思康、蛋糕做成甜品做成最传统的法国风味。人家可是做出了自己的甜品品牌,在法国其他地方开店的哦!&/p&&figure&&img src=&https://pic4.zhimg.com/v2-200f8f2c8ef6c1fc4f6daa7f3b9662a6_b.jpg& data-rawwidth=&1400& data-rawheight=&875& class=&origin_image zh-lightbox-thumb& width=&1400& data-original=&https://pic4.zhimg.com/v2-200f8f2c8ef6c1fc4f6daa7f3b9662a6_r.jpg&&&/figure&&p&冲着这个&b&毫无违和感的西洋+东洋混搭和香榭丽舍400米方圆内的绝好地理位置&/b&,我给这个小布尔乔维亚情调献上膝盖!&/p&&p&&u&&i&价格:$397起&/i&&/u&&/p&&p&&i&&u&地址:8 Rue Frédéric Bastiat, 75008 Paris, France&/u&&/i&&br&&/p&&br&&p&&b&&u&纽约 Crosby Street Hotel&/u&&/b&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-78b80efb1bca28aa8d987_b.jpg& data-rawwidth=&940& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic4.zhimg.com/v2-78b80efb1bca28aa8d987_r.jpg&&&/figure&听到『连锁』两个字,酒店控们大概是会直摇头的。不过&b&Firmdale&/b&倒是连锁界的一股清流!一句话,下次去英国,&b&请实力认证这个最好的英国独立酒店连锁品牌&/b&。&figure&&img src=&https://pic4.zhimg.com/v2-776c744ad6dca7e7f3da9c0c6c5d55cf_b.jpg& data-rawwidth=&940& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic4.zhimg.com/v2-776c744ad6dca7e7f3da9c0c6c5d55cf_r.jpg&&&/figure&&p&说起来Firmdale还是一家『夫妻老婆店』!是由英国知名室内设计师Kit Kemp和她老公一起开,目前旗下共有9家精品酒店,其中8家在伦敦,而这家位于纽约SoHo区的Crosby Street Hotel,就是Firmdale旗下目前唯一一家海外酒店。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-449b983bed3c6606c36cca40782a99eb_b.jpg& data-rawwidth=&940& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic2.zhimg.com/v2-449b983bed3c6606c36cca40782a99eb_r.jpg&&&/figure&&p&酒店走的是&b&小,私密,和服务导向&/b&,而设计风格和上面那家Hotel Daniel一样,不当极简主义的跟风狗,但又保留了英国人含蓄优雅的调调。(好了,朕知道你们会折腾了,退下吧。)&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ec7b6b4ded1e1f78e46df12bdcc1d015_b.jpg& data-rawwidth=&940& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic2.zhimg.com/v2-ec7b6b4ded1e1f78e46df12bdcc1d015_r.jpg&&&/figure&&p&在Firmdale的所有酒店,你都可以看到鲜亮舒服的撞色、大面积花纹、海量的艺术收藏,还有英式风情的小花园。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-faaeaa09fddca26_b.jpg& data-rawwidth=&940& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic2.zhimg.com/v2-faaeaa09fddca26_r.jpg&&&/figure&&p&这家酒店的艺术气息可是真?霸气外露,酒店还有一个画室和99人座的电影院,每个星期天的晚上都会放电影!&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-cfdcde385cc1a8be48bb6d75_b.jpg& data-rawwidth=&940& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&940& data-original=&https://pic1.zhimg.com/v2-cfdcde385cc1a8be48bb6d75_r.jpg&&&/figure&&p&这样的设计出现在英国也许不算太稀奇,不过在极具怀旧纽约风情的下城区鹅卵石街景中安置的这枚Crosby Street Hotel,就凭着&b&把仓库式的Loft打造成英伦私宅&/b&的劲头,和『&b&我们的86个房间每间都不一样哦!』&/b&这一点,就一定能让你回来。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-27c18cf3cea4cedcb3adf37fe346dbd5_b.jpg& data-rawwidth=&560& data-rawheight=&375& class=&origin_image zh-lightbox-thumb& width=&560& data-original=&https://pic4.zhimg.com/v2-27c18cf3cea4cedcb3adf37fe346dbd5_r.jpg&&&/figure&&p&&u&&i&价格:$795起&/i&&/u&&/p&&p&&u&&i&地址:79 Crosby St, New York, NY 10012&/i&&/u&&/p&&p&&b&4.时髦时髦最时髦&/b&&/p&&p&&b&&u&巴黎 Les Bains Paris&/u&&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fb08c4de79e7d4d03290ab_b.jpg& data-rawwidth=&920& data-rawheight=&613& class=&origin_image zh-lightbox-thumb& width=&920& data-original=&https://pic2.zhimg.com/v2-fb08c4de79e7d4d03290ab_r.jpg&&&/figure&&p&比这家酒店的前台和软装看上去更&b&戏剧化&/b&的,应该是它130年的历史——&b&浴场、夜总会、名利场&/b&,『Les Bains Hotel』褪去扑朔迷离的身份和仆仆风尘,从2005年起摇身一变,正式成为一个&b&盛载文化史和名人史、拥有39个房间的精品酒店&/b&。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-ca58a57a3d64b87dffef7b_b.jpg& data-rawwidth=&1149& data-rawheight=&766& class=&origin_image zh-lightbox-thumb& width=&1149& data-original=&https://pic3.zhimg.com/v2-ca58a57a3d64b87dffef7b_r.jpg&&&/figure&&p&这里的原名是『Les Bains Douches』,法语中意为冲洗浴室,是随着19世纪末巴黎大改造的热潮兴建的&b&巴黎第一间奢华浴场&/b&,位于三区,莫奈、毕加索都曾光顾,法国著名作家马塞尔·普鲁斯特与他的阔少朋友们更是流连忘返,你在《追忆似水年华》中就能读到当时浴场的景象。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-be4a06f20262_b.jpg& data-rawwidth=&950& data-rawheight=&640& class=&origin_image zh-lightbox-thumb& width=&950& data-original=&https://pic3.zhimg.com/v2-be4a06f20262_r.jpg&&&/figure&&p&20世纪后期,当时还默默无闻的法国设计师Philippe Starck将其改造成&b&上流社会的堕落天堂&/b&,也成了他一炮走红的成名作&b&。&/b&变身&b&夜店/聚乐部/秀场&/b&的Les Bains Douches被人们誉为巴黎的54号俱乐部(来源于曼哈顿西54街的夜总会Studio 54,美国夜生活文化的经典代表),&b&常客列表更是掷地有声&/b&:Andy Warhol, David Bowie,
Rolling Stone的主唱,或是时尚圈的大牌设计师圣罗兰先生,老佛爷Karl Lagerfeld,Kate Moss(和她当年的男友Johnny Depp),还有几乎八九十年代所有你能叫得出名字的名模。看着如今这家奢华精品酒店的摩登样貌你也许很难想象他们都曾在这酩酊大醉、纵情戏水。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d990e0eeda44b504ee35717c46ece180_b.jpg& data-rawwidth=&920& data-rawheight=&613& class=&origin_image zh-lightbox-thumb& width=&920& data-original=&https://pic1.zhimg.com/v2-d990e0eeda44b504ee35717c46ece180_r.jpg&&&/figure&&p&改造后的Les Bains Hotel的美和它复杂的身世、经手操办的妙手一样,难以一言蔽之:声色场所化身奢华酒店,&b&浪漫古典中多少还挟带着一丝邪气&/b&——大堂、休息区、房间好似与巴黎的高级公寓毫无二致,而其余的公共空间竟又是另一番情形。餐厅的未来感来自黑白瓷砖地板与顶部好似宇宙飞船内部的设计,夜店照着现代审美翻新,而昔日的浴场如今则成为了夜店隔壁、霓虹灯映照下的SPA和会下雨的泳池。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-37c6ea1c03e8ac276e3befa181f6ba82_b.jpg& data-rawwidth=&920& data-rawheight=&613& class=&origin_image zh-lightbox-thumb& width=&920& data-original=&https://pic4.zhimg.com/v2-37c6ea1c03e8ac276e3befa181f6ba82_r.jpg&&&/figure&&p&&figure&&img src=&https://pic4.zhimg.com/v2-d4b5f0c14c3ea8b2f0a9_b.jpg& data-rawwidth=&1920& data-rawheight=&1030& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic4.zhimg.com/v2-d4b5f0c14c3ea8b2f0a9_r.jpg&&&/figure&无论你是去那里缅怀过去、还是一番痛饮狂欢后从巴黎式温柔的房间里醒来、又或仅仅是坐在宇宙餐厅里读米其林三星厨师亲自写的菜单,人们都在那里各得其所,仿佛百年来的Les Bains也没有改变太多。这种理所当然本身就是一种时髦所在!&/p&&p&&u&&i&价格:$400起&/i&&/u&&/p&&p&&u&&i&地址:7 Rue du Bourg l'Abbé, 75003 Paris, France&/i&&/u&&/p&&br&&p&&b&&u&纽约 Gansevoort Meatpacking NYC&br&&/u&&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-6fdf58fe5ba655beabb0_b.jpg& data-rawwidth=&900& data-rawheight=&900& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/v2-6fdf58fe5ba655beabb0_r.jpg&&&/figure&&p&相比巴黎时尚厚重的历史,&b&纽约式的时髦『街头』了不少&/b&。比如这家在&b&纽约肉库区(Meatpacking District)&/b&的酒店,很多网红已经打过卡了,而且还是当红宇宙第一博主Chiara Ferragni本次纽约时装周的下榻场所。&/p&&p&来来来,平时网红正面照看多了,这次&b&放个福利&/b&。。。这两张应该也是在这个酒店拍的!&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c08cd96bca61d720f3fe_b.jpg& data-rawwidth=&2199& data-rawheight=&1373& class=&origin_image zh-lightbox-thumb& width=&2199& data-original=&https://pic1.zhimg.com/v2-c08cd96bca61d720f3fe_r.jpg&&&/figure&&p&你问我怎么知道的?喏,给你看看她在Instagram上定的这个位,晒的这么多衣服包鞋。。。&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-502b7d55d5daac0654edace_b.jpg& data-rawwidth=&814& data-rawheight=&599& class=&origin_image zh-lightbox-thumb& width=&814& data-original=&https://pic2.zhimg.com/v2-502b7d55d5daac0654edace_r.jpg&&&/figure&显然纽约的中上城太主流,人尽皆知的SoHo太游客,连东西村也都过气了,于是时髦人士锚准了13街以上、17街以下、西到西岸高速东到第九大道的这一小方区域,曾经的肉类屠宰加工厂也被画廊、创意园、精品店、咖啡馆代替。《欲望都市》里的Samantha就向闺蜜们宣布:我要搬到肉库区去了!剧情里安排给她的Gansevoort街300号的地址是假的,而这条肉库区的主街名『Gansevoort』确实真的。这间名叫Gansevoort Meatpacking NYC的酒店,就是&b&典型的时髦人士肉库区新宠&/b&。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-e9eaf88e639527aefae09fcac918e2e2_b.jpg& data-rawwidth=&1500& data-rawheight=&938& class=&origin_image zh-lightbox-thumb& width=&1500& data-original=&https://pic3.zhimg.com/v2-e9eaf88e639527aefae09fcac918e2e2_r.jpg&&&/figure&&p&让这个酒店名声大噪的,不仅有顶楼同时看得到哈德逊河和曼哈顿街景的360度酒廊,还有号称全球最大最奢华的屋顶恒温泳池!&/p&&figure&&img src=&https://pic4.zhimg.com/v2-af86dcc22b078aefa630eb_b.jpg& data-rawwidth=&1500& data-rawheight=&900& class=&origin_image zh-lightbox-thumb& width=&1500& data-original=&https://pic4.zhimg.com/v2-af86dcc22b078aefa630eb_r.jpg&&&/figure&&p&Gansevoort Meatpacking NYC选性感紫色作为主题,从大楼晚间散发的暧昧灯光、公共区域和房间里的零星点缀、到夜店酒吧里放肆交错的紫光,都为这个时髦区的摩登酒店增加了几分迷离的色彩~&/p&&figure&&img src=&https://pic3.zhimg.com/v2-7be1e1ffccaeec_b.jpg& data-rawwidth=&1000& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-7be1e1ffccaeec_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-0fa8bc63bfb36_b.jpg& data-rawwidth=&1500& data-rawheight=&900& class=&origin_image zh-lightbox-thumb& width=&1500& data-original=&https://pic3.zhimg.com/v2-0fa8bc63bfb36_r.jpg&&&/figure&&p&&u&&i&价格:$425起&/i&&/u&&/p&&p&&u&&i&地址:18 9th Ave, New York, NY 10014&/i&&/u&&/p&&p&&b&5. 巴黎?纽约?傻傻分不清楚&/b&&/p&&p&&b&&u&巴黎 Hotel Platine&/u&&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-45b7c8cffdce9a2c358d7808_b.jpg& data-rawwidth=&750& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic1.zhimg.com/v2-45b7c8cffdce9a2c358d7808_r.jpg&&&/figure&&p&咦,梦露不是美国的性感尤物吗,怎么跑去了巴黎?&/p&&p&如果你在巴黎的一家酒店里发现了&b&铺天盖地的梦露照片&/b&,那一定是这家&b&位于15区、向玛丽莲?梦露致敬的、取名为『铂金』的酒店——Hotel Platine!&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c0debbc493b9bab4da8feb4_b.jpg& data-rawwidth=&797& data-rawheight=&486& class=&origin_image zh-lightbox-thumb& width=&797& data-original=&https://pic3.zhimg.com/v2-c0debbc493b9bab4da8feb4_r.jpg&&&/figure&&p&不管是招牌式的白痴红唇美人痣加大波浪金发,还是迷离的眼神和飞扬的白裙,这家拥有&b&46个房间的酒店卧室里都伴有一张巨幅的梦露肖像&/b&。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0d22d802d8cf5dafc425f6_b.jpg& data-rawwidth=&900& data-rawheight=&608& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic3.zhimg.com/v2-0d22d802d8cf5dafc425f6_r.jpg&&&/figure&&p&除了百般媚态的梦露之外,酒店的风格有种美式复古摩登的穿越感!设计元素有&b&黑白红波点、千鸟格、棋盘格、玫瑰花,&/b&点缀现代家具,充满轻松时髦的味道。大俗即大雅不是嘛?&/p&&figure&&img src=&https://pic4.zhimg.com/v2-4ab3f4ab7547adc3072e42a_b.jpg& data-rawwidth=&800& data-rawheight=&533& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/v2-4ab3f4ab7547adc3072e42a_r.jpg&&&/figure&&p&喏,还有你们要的(可以360度翻滚的)&b&圆床&/b&!&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-d3f80fba86bf6bc5a96dc_b.jpg& data-rawwidth=&670& data-rawheight=&446& class=&origin_image zh-lightbox-thumb& width=&670& data-original=&https://pic4.zhimg.com/v2-d3f80fba86bf6bc5a96dc_r.jpg&&&/figure&除了大堂和餐厅用了蓝色作为主基调,酒店的其他区域都是上面这一副&b&香艳的作派&/b&。餐厅还以美式diner为原型,衬了好一幅夜景背光板。。。大概&b&浮光梦影&/b&即是巴黎人对美国的印象吧!&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c0c7edf59cebff0cd55fee_b.jpg& data-rawwidth=&958& data-rawheight=&397& class=&origin_image zh-lightbox-thumb& width=&958& data-original=&https://pic1.zhimg.com/v2-c0c7edf59cebff0cd55fee_r.jpg&&&/figure&&p&&u&&i&价格:$159起&/i&&/u&&/p&&p&&u&&i&地址:20 Rue de l'Ingénieur Robert Keller, 75015 Paris, France&/i&&/u&&/p&&p&&b&&u&纽约 The NoMad Hotel&/u&&/b&&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-a4b5147058abf56e05b298b5e013a142_b.jpg& data-rawwidth=&700& data-rawheight=&379& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic3.zhimg.com/v2-a4b5147058abf56e05b298b5e013a142_r.jpg&&&/figure&&b&请不要不相信,这个带有穹顶的法式奥斯曼风格的建筑确实在纽约!&/b&而『NoMad』这个名字则响亮地暗示了身处百老汇的酒店North of Madison Square Park(麦迪逊广场公园以北)的绝佳地理位置。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-4b1fc654a16b11b6ce16_b.jpg& data-rawwidth=&1600& data-rawheight=&866& class=&origin_image zh-lightbox-thumb& width=&1600& data-original=&https://pic4.zhimg.com/v2-4b1fc654a16b11b6ce16_r.jpg&&&/figure&&p&说NoMad是纽约&b&最有型&/b&的酒店一点也不过分。和这篇文第一个提到的巴黎酒店Maison Souquet一样,Nomad也是由法国设计师Jacques Garcia操刀,&b&硬是在纽约这片自由不羁又寸土寸金的土地上捏出了一个精致的巴黎风酒店&/b&,好不做作。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-89ed1f46fba9c9a7ded7_b.jpg& data-rawwidth=&1000& data-rawheight=&666& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-89ed1f46fba9c9a7ded7_r.jpg&&&/figure&&p&Jacques Garcia一向舍得用料,而灵感取自设计师本人年轻时曾居住的巴黎公寓的NoMad更是在细节处把『家的温暖』做到淋漓尽致。&br&&/p&&p&比起生涩的酒店感,NoMad从硬木地板、波斯风情的羊毛地毯、厚实的雕花木门、皮椅、到各种稀奇古怪的艺术收藏,都让你有一种&b&『啊要是有钱我家也得这么搞!』&/b&的舒适感,而且房间面积在曼哈顿的酒店中也是非常良心。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fbde4eecc_b.jpg& data-rawwidth=&540& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&540& data-original=&https://pic2.zhimg.com/v2-fbde4eecc_r.jpg&&&/figure&&p&要说室内设计里最出彩的,应该还是&b&虎爪四脚浴缸&/b&!&/p&&figure&&img src=&https://pic3.zhimg.com/v2-49d84b4fa255581bad6f082fd517e478_b.jpg& data-rawwidth=&804& data-rawheight=&435& class=&origin_image zh-lightbox-thumb& width=&804& data-original=&https://pic3.zhimg.com/v2-49d84b4fa255581bad6f082fd517e478_r.jpg&&&/figure&&p&浴缸&b&并没有被摆去孤独的浴室,而是只隔一面屏风,直挺挺地躺在房间的角落&/b&,好羞涩~如果运气好的话,你还可以订到窗外就能看到帝国大厦的房间,那么不如在夜晚给自己放一池热水,点一枚蜡烛,倒一杯红酒,感受什么叫&b&纽约与巴黎也不过咫尺间。&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d1ddc3d65f87eefbbe47f70_b.jpg& data-rawwidth=&1080& data-rawheight=&718& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic4.zhimg.com/v2-d1ddc3d65f87eefbbe47f70_r.jpg&&&/figure&&p&Lounge是图书馆的模样,正餐厅到处挂着丝绒帘子,灯光暧昧又隐约从高挑的玻璃穹顶里透进光,总之就是随处都要骄傲地暗示你&b&『我们法国人就是好品味』&/b&!&/p&&p&如果有心想浪,还请坐去酒店的&b&大象吧(Elephant Bar)&/b&,那里是纽约最好的鸡尾酒吧之一,比起许多名不见经传的地下酒吧多了几分高级奢靡,连酒保都好帅。。。别怪我没告诉你这个最佳艳遇/调情地哟~&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-91c5dcbfef3a3f874adb8_b.jpg& data-rawwidth=&944& data-rawheight=&404& class=&origin_image zh-lightbox-thumb& width=&944& data-original=&https://pic2.zhimg.com/v2-91c5dcbfef3a3f874adb8_r.jpg&&&/figure&&u&&i&价格:$400起&/i&&/u&&/p&&p&&u&&i&地址:1170 Broadway, New York, NY 10001&/i&&/u&&/p&&p&看到这里,头上挂着黑人问号的同学们不禁要问:纽约有纽约的好,巴黎有巴黎的妙,所以到底哪个城市更性感啊?&/p&&p&那么我来一个私心分享:写完了这么多酒店,我好像更喜欢巴黎!不过说到底,这是一种人生处处是围城,生活在别处的心情。有句话怎么说来着,就算好山好水也好寂寞,哪怕好脏好乱也好快活。毕竟,活得性感是一种精神状态啊~&/p&&p&最后祝(不久前还在放浪形骸现在年假欠费的)大家节后生活愉快么么哒!&/p&&br&&br&&p&&b&关键词『酒店』合集在这里,老司机带你飞 &/b&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&充满香艳异国情调的东南亚民宿|十一长假,来一张说滚就滚的床单&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI1NjEyMDY5MQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D9a5a5d030b38fabe895d16f42cchksm%3Df8eb68a3b098eabcb50cafbfe7c8b27bff9aefaba074%26scene%3D1%26srcid%3D0914rJgm8bUhTZUdue9vE3XN%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Instagram上最多赞的网红酒店我替你扒来了,滚床单就要立志滚遍全世界!&/a&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI1NjEyMDY5MQ%3D%3D%26mid%3D%26idx%3D1%26sn%3D4eb4f092d7c3ace71dc0c1%26scene%3D1%26srcid%3D0914eXGG0BnaUcXn17b4bXDT%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这些性感的小众香氛, 下次在酒店看到它们一定要带走!&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&性感向 | 别住Airbnb了,和爱人这辈子该住一次的全球情爱酒店名单来了!&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&香艳Hotel第二弹:掩面推荐那些岛国的情爱酒店!&/a&&/p&&p&&b&&u&转载请询问授权!!!&/u&&br&&/b&&/p&&p&微博戳&&&&a href=&https://link.zhihu.com/?target=http%3A//www.weibo.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&纽约媚姐&/a&(每日睡衣/内衣/香氛/酒店种草+美图洗眼,偶尔逗比加吐槽)&br&&br&微信:女神任性堂;出门也可去『纽约任性姐』&a href=&https://link.zhihu.com/?target=http%3A//weibo.com/nyrenxingjie%3Frefer_flag%3D_& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&微博&/a&/&a href=&https://www.zhihu.com/people/nyrenxingjie& class=&internal&&知乎&/a&逛逛哟~~&/p&
对于纽约人民来说,《欲望都市》最后几集简直是耻辱一刻:打死也不想离开曼哈顿(连布鲁克林都看不起哟)的典型纽约女孩儿Carrie,一听能去巴黎马上欢欣鼓舞 ╮(╯▽╰)╭ 一到酒店,Carrie从门口开始就一副『哇塞』的模样,傲娇的纽约气质完全不见;进了房…
&figure&&img src=&https://pic2.zhimg.com/d68df4eae1e7ab5d2a1cb46_b.jpg& data-rawwidth=&1920& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/d68df4eae1e7ab5d2a1cb46_r.jpg&&&/figure&&p&本文是&a href=&https://zhuanlan.zhihu.com/json-tutorial& class=&internal&&《从零开始的 JSON 库教程》&/a&的第一个单元。教程练习源代码位于 &a href=&https://link.zhihu.com/?target=https%3A//github.com/miloyip/json-tutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&json-tutorial&/a&。&br&&/p&&br&&p&本单元内容:&br&&/p&&ol&&li&JSON 是什么&br&&/li&&li&搭建编译环境&br&&/li&&li&头文件与 API 设计&br&&/li&&li&JSON 语法子集&br&&/li&&li&单元测试&br&&/li&&li&宏的编写技巧&br&&/li&&li&实现解析器&br&&/li&&li&关于断言&br&&/li&&li&总结与练习&br&&/li&&li&常见问答&br&&/li&&/ol&&br&&p&(题图 &a href=&https://link.zhihu.com/?target=https%3A//unsplash.com/search/lantern%3Fphoto%3DLkHXBKpwhZ8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Photo by Gianandrea Villa&/a&)&br&&/p&&h1&1. JSON 是什么&/h1&&p&JSON(JavaScript Object Notation)是一个用于数据交换的文本格式,现时的标准为&a href=&https://link.zhihu.com/?target=http%3A//www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ECMA-404&/a&。&/p&&p&虽然 JSON 源至于 JavaScript 语言,但它只是一种数据格式,可用于任何编程语言。现时具类似功能的格式有 XML、YAML,当中以 JSON 的语法最为简单。&/p&&p&例如,一个动态网页想从服务器获得数据时,服务器从数据库查找数据,然后把数据转换成 JSON 文本格式:&/p&&br&&div class=&highlight&&&pre&&code class=&language-json&&&span&&/span&&span class=&p&&{&/span&
&span class=&nt&&&title&&/span&&span class=&p&&:&/span& &span class=&s2&&&Design Patterns&&/span&&span class=&p&&,&/span&
&span class=&nt&&&subtitle&&/span&&span class=&p&&:&/span& &span class=&s2&&&Elements of Reusable Object-Oriented Software&&/span&&span class=&p&&,&/span&
&span class=&nt&&&author&&/span&&span class=&p&&:&/span& &span class=&p&&[&/span&
&span class=&s2&&&Erich Gamma&&/span&&span class=&p&&,&/span&
&span class=&s2&&&Richard Helm&&/span&&span class=&p&&,&/span&
&span class=&s2&&&Ralph Johnson&&/span&&span class=&p&&,&/span&
&span class=&s2&&&John Vlissides&&/span&
&span class=&p&&],&/span&
&span class=&nt&&&year&&/span&&span class=&p&&:&/span& &span class=&mi&&2009&/span&&span class=&p&&,&/span&
&span class=&nt&&&weight&&/span&&span class=&p&&:&/span& &span class=&mf&&1.8&/span&&span class=&p&&,&/span&
&span class=&nt&&&hardcover&&/span&&span class=&p&&:&/span& &span class=&kc&&true&/span&&span class=&p&&,&/span&
&span class=&nt&&&publisher&&/span&&span class=&p&&:&/span& &span class=&p&&{&/span&
&span class=&nt&&&Company&&/span&&span class=&p&&:&/span& &span class=&s2&&&Pearson Education&&/span&&span class=&p&&,&/span&
&span class=&nt&&&Country&&/span&&span class=&p&&:&/span& &span class=&s2&&&India&&/span&
&span class=&p&&},&/span&
&span class=&nt&&&website&&/span&&span class=&p&&:&/span& &span class=&kc&&null&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&网页的脚本代码就可以把此 JSON 文本解析为内部的数据结构去使用。&/p&&p&从此例子可看出,JSON 是树状结构,而 JSON 只包含 6 种数据类型:&/p&&ul&&li&null: 表示为 null&/li&&li&boolean: 表示为 true 或 false&/li&&li&number: 一般的浮点数表示方式,在下一单元详细说明&/li&&li&string: 表示为 &...&&/li&&li&array: 表示为 [ ... ]&/li&&li&object: 表示为 { ... }&/li&&/ul&&p&我们要实现的 JSON 库,主要是完成 3 个需求:&/p&&ol&&li&把 JSON 文本解析为一个树状数据结构(parse)。&/li&&li&提供接口访问该数据结构(access)。&/li&&li&把数据结构转换成 JSON 文本(stringify)。&/li&&/ol&&figure&&img src=&https://pic1.zhimg.com/75eecbdd3b028e1479e3d_b.jpg& data-rawwidth=&440& data-rawheight=&78& class=&origin_image zh-lightbox-thumb& width=&440& data-original=&https://pic1.zhimg.com/75eecbdd3b028e1479e3d_r.jpg&&&/figure&&p&我们会逐步实现这些需求。在本单元中,我们只实现最简单的 null 和 boolean 解析。&/p&&h1&2. 搭建编译环境&/h1&&p&我们要做的库是跨平台、跨编译器的,同学可使用任意平台进行练习。&/p&&p&练习源代码位于 &a href=&https://link.zhihu.com/?target=https%3A//github.com/miloyip/json-tutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&json-tutorial&/a&,当中 tutorial01 为本单元的练习代码。建议同学登记为 GitHub 用户,把项目 fork 一个自己的版本,然后在上面进行修改。不了解版本管理的同学,也可以按右方「Clone or download」按钮,简单下载一个 zip 文件。&/p&&p&我们的 JSON 库名为 leptjson,代码文件只有 3 个:&/p&&ol&&li&leptjson.h:leptjson 的头文件(header file),含有对外的类型和 API 函数声明。&/li&&li&leptjson.c:leptjson 的实现文件(implementation file),含有内部的类型声明和函数实现。此文件会编译成库。&/li&&li&test.c:我们使用测试驱动开发(test driven development, TDD)。此文件包含测试程序,需要链接 leptjson 库。&/li&&/ol&&p&为了方便跨平台开发,我们会使用一个现时最流行的软件配置工具 &a href=&https://link.zhihu.com/?target=https%3A//cmake.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CMake&/a&。&/p&&p&在 Windows 下,下载安装 CMake 后,可以使用其 cmake-gui 程序:&/p&&figure&&img src=&https://pic4.zhimg.com/21f865a087b7775b8fcc_b.jpg& data-rawwidth=&663& data-rawheight=&420& class=&origin_image zh-lightbox-thumb& width=&663& data-original=&https://pic4.zhimg.com/21f865a087b7775b8fcc_r.jpg&&&/figure&&p&先在 &Where is the source code& 选择 json-tutorial/tutorial01,再在 &Where to build the binary& 键入上一个目录加上 /build。&/p&&p&按 Configure,选择编译器,然后按 Generate 便会生成 Visual Studio 的 .sln 和 .vcproj 等文件。注意这个 build 目录都是生成的文件,可以随时删除,也不用上传至仓库。&/p&&p&在 OS X 下,建议安装 &a href=&https://link.zhihu.com/?target=http%3A//brew.sh/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Homebrew&/a&,然后在命令行键入:&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&$ brew install cmake
$ &span class=&nb&&cd&/span& github/json-tutorial/tutorial01
$ mkdir build
$ &span class=&nb&&cd&/span& build
$ cmake -DCMAKE_BUILD_TYPE&span class=&o&&=&/span&Debug ..
&/code&&/pre&&/div&&p&这样会使用 GNU make 来生成项目,把 Debug 改成 Release 就会生成 Release 配置的 makefile。&/p&&p&若你喜欢的话,CMake 也可以生成 Xcode 项目:&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&$ cmake -G Xcode ..
$ open leptjson_test.xcodeproj
&/code&&/pre&&/div&&p&而在 Ubuntu 下,可使用 apt-get 来安装:&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&$ apt-get install cmake
&/code&&/pre&&/div&&p&无论使用什么平台及编译环境,编译运行后会出现:&/p&&div class=&highlight&&&pre&&code class=&language-bash&&&span&&/span&$ ./leptjson_test
/Users/miloyip/github/json-tutorial/tutorial01/test.c:56: expect: &span class=&m&&3&/span& actual: 0
11/12 &span class=&o&&(&/span&91.67%&span class=&o&&)&/span& passed
&/code&&/pre&&/div&&p&若看到类似以上的结果,说明已成功搭建编译环境,我们可以去看看那几个代码文件的内容了。&/p&&h1&3. 头文件与 API 设计&/h1&&p&C 语言有头文件的概念,需要使用 #include 去引入头文件中的类型声明和函数声明。但由于头文件也可以 #include 其他头文件,为避免重复声明,通常会利用宏加入 #include 防范(include guard):&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&cp&&#ifndef LEPTJSON_H__&/span&
&span class=&cp&&#define LEPTJSON_H__&/span&
&span class=&cm&&/* ... */&/span&
&span class=&cp&&#endif &/span&&span class=&cm&&/* LEPTJSON_H__ */&/span&&span class=&cp&&&/span&
&/code&&/pre&&/div&&p&宏的名字必须是唯一的,通常习惯以 _&em&H__&/em& 作为后缀。由于 leptjson 只有一个头文件,可以简单命名为 LEPTJSON_H__。如果项目有多个文件或目录结构,可以用 项目名称_目录_文件名称_H__ 这种命名方式。&/p&&p&如前所述,JSON 中有 6 种数据类型,如果把 true 和 false 当作两个类型就是 7 种,我们为此声明一个枚举类型(enumeration type):&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&k&&typedef&/span& &span class=&k&&enum&/span& &span class=&p&&{&/span& &span class=&n&&LEPT_NULL&/span&&span class=&p&&,&/span& &span class=&n&&LEPT_FALSE&/span&&span class=&p&&,&/span& &span class=&n&&LEPT_TRUE&/span&&span class=&p&&,&/span& &span class=&n&&LEPT_NUMBER&/span&&span class=&p&&,&/span& &span class=&n&&LEPT_STRING&/span&&span class=&p&&,&/span& &span class=&n&&LEPT_ARRAY&/span&&span class=&p&&,&/span& &span class=&n&&LEPT_OBJECT&/span& &span class=&p&&}&/span& &span class=&n&&lept_type&/span&&span class=&p&&;&/span&
&/code&&/pre&&/div&&p&因为 C 语言没有 C++ 的命名空间(namespace)功能,一般会使用项目的简写作为标识符的前缀。通常枚举值用全大写(如 LEPT_NULL),而类型及函数则用小写(如 lept_type)。&/p&&p&接下来,我们声明 JSON 的数据结构。JSON 是一个树形结构,我们最终需要实现一个树的数据结构,每个节点使用 lept_value 结构体表示,我们会称它为一个 JSON 值(JSON value)。 在此单元中,我们只需要实现 null, true 和 false 的解析,因此该结构体只需要存储一个 lept_type。之后的单元会逐步加入其他数据。&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&k&&typedef&/span& &span class=&k&&struct&/span& &span class=&p&&{&/span&
&span class=&n&&lept_type&/span& &span class=&n&&type&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&&span class=&n&&lept_value&/span&&span class=&p&&;&/span&
&/code&&/pre&&/div&&p&C 语言的结构体是以 struct X {} 形式声明的,定义变量时也要写成 struct X。为方便使用,上面的代码使用了 typedef。&/p&&p&然后,我们现在只需要两个 API 函数,一个是解析 JSON:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&kt&&int&/span& &span class=&nf&&lept_parse&/span&&span class=&p&&(&/span&&span class=&n&&lept_value&/span&&span class=&o&&*&/span& &span class=&n&&v&/span&&span class=&p&&,&/span& &span class=&k&&const&/span& &span class=&kt&&char&/span&&span class=&o&&*&/span& &span class=&n&&json&/span&&span class=&p&&);&/span&
&/code&&/pre&&/div&&p&传入的 JSON 文本是一个 C 字符串(空结尾字符串/null-terminated string),由于我们不应该改动这个输入字符串,所以使用 const char* 类型。&/p&&p&另一注意点是,传入的根节点指针 v 是由使用方负责分配的,所以一般用法是:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&n&&lept_value&/span& &span class=&n&&v&/span&&span class=&p&&;&/span&
&span class=&k&&const&/span& &span class=&kt&&char&/span& &span class=&n&&json&/span&&span class=&p&&[]&/span& &span class=&o&&=&/span& &span class=&p&&...;&/span&
&span class=&kt&&int&/span& &span class=&n&&ret&/span& &span class=&o&&=&/span& &span class=&n&&lept_parse&/span&&span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&n&&v&/span&&span class=&p&&,&/span& &span class=&n&&json&/span&&span class=&p&&);&/span&
&/code&&/pre&&/div&&p&返回值是以下这些枚举值,无错误会返回 LEPT_PARSE_OK,其他值在下节解释。&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&k&&enum&/span& &span class=&p&&{&/span&
&span class=&n&&LEPT_PARSE_OK&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span&
&span class=&n&&LEPT_PARSE_EXPECT_VALUE&/span&&span class=&p&&,&/span&
&span class=&n&&LEPT_PARSE_INVALID_VALUE&/span&&span class=&p&&,&/span&
&span class=&n&&LEPT_PARSE_ROOT_NOT_SINGULAR&/span&
&span class=&p&&};&/span&
&/code&&/pre&&/div&&p&现时我们只需要一个访问结果的函数,就是获取其类型:&/p&&br&&div class=&highlight&&&pre&&code class=&language-cmake&&&span&&/span&&span class=&err&&lept_type&/span& &span class=&nb&&lept_get_type&/span&&span class=&p&&(&/span&&span class=&s&&const&/span& &span class=&s&&lept_value*&/span& &span class=&s&&v&/span&&span class=&p&&)&/span&&span class=&err&&;&/span&
&/code&&/pre&&/div&&h1&4. JSON 语法子集&/h1&&p&下面是此单元的 JSON 语法子集,使用 &a href=&https://link.zhihu.com/?target=http%3A//rfc7159.net/rfc7159& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RFC7159&/a& 中的 &a href=&https://link.zhihu.com/?target=https%3A//tools.ietf.org/html/rfc5234& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ABNF&/a& 表示:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&JSON-text = ws value ws
ws = *(%x20 / %x09 / %x0A / %x0D)
value = null / false / true
false = &false&
&/code&&/pre&&/div&&p&当中 %xhh 表示以 16 进制表示的字符,/ 是多选一,* 是零或多个,( ) 用于分组。&/p&&p&那么第一行的意思是,JSON 文本由 3 部分组成,首先是空白(whitespace),接着是一个值,最后是空白。&/p&&p&第二行告诉我们,所谓空白,是由零或多个空格符(space U+0020)、制表符(tab U+0009)、换行符(LF U+000A)、回车符(CR U+000D)所组成。&/p&&p&第三行是说,我们现时的值只可以是 null、false 或 true,它们分别有对应的字面值(literal)。&/p&&p&我们的解析器应能判断输入是否一个合法的 JSON。如果输入的 JSON 不合符这个语法,我们要产生对应的错误码,方便使用者追查问题。&/p&&p&在这个 JSON 语法子集下,我们定义 3 种错误码:&/p&&ul&&li&若一个 JSON 只含有空白,传回 LEPT_PARSE_EXPECT_VALUE。&/li&&li&若一个值之后,在空白之后还有其他字符,传回 LEPT_PARSE_ROOT_NOT_SINGULAR。&/li&&li&若值不是那三种字面值,传回 LEPT_PARSE_INVALID_VALUE。&/li&&/ul&&h1&5. 单元测试&/h1&&p&许多同学在做练习或刷题时,都是以 printf/cout 打印结果,再用肉眼对比结果是否乎合预期。但当软件项目越来越复杂,这个做法会越来越低效。一般我们会采用自动的测试方式,例如单元测试(unit testing)。单元测试也能确保其他人修改代码后,原来的功能维持正确(这称为回归测试/regression testing)。&/p&&p&常用的单元测试框架有 xUnit 系列,如 C++ 的 &a href=&https://link.zhihu.com/?target=https%3A//github.com/google/googletest& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google Test&/a&、C# 的 &a href=&https://link.zhihu.com/?target=http%3A//www.nunit.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&NUnit&/a&。我们为了简单起见,会编写一个极简单的单元测试方式。&/p&&p&一般来说,软件开发是以周期进行的。例如,加入一个功能,再写关于该功能的单元测试。但也有另一种软件开发方法论,称为测试驱动开发(test-driven development, TDD),它的主要循环步骤是:&/p&&ol&&li&加入一个测试。&/li&&li&运行所有测试,新的测试应该会失败。&/li&&li&编写实现代码。&/li&&li&运行所有测试,若有测试失败回到3。&/li&&li&重构代码。&/li&&li&回到 1。&/li&&/ol&&p&TDD 是先写测试,再实现功能。好处是实现只会刚好满足测试,而不会写了一些不需要的代码,或是没有被测试的代码。&/p&&p&但无论我们是采用 TDD,或是先实现后测试,都应尽量加入足够覆盖率的单元测试。&/p&&p&回到 leptjson 项目,test.c 包含了一个极简的单元测试框架:&/p&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&cp&&#include&/span& &span class=&cpf&&&stdio.h&&/span&&span class=&cp&&&/span&
&span class=&cp&&#include&/span& &span class=&cpf&&&stdlib.h&&/span&&span class=&cp&&&/span&
&span class=&cp&&#include&/span& &span class=&cpf&&&string.h&&/span&&span class=&cp&&&/span&
&span class=&cp&&#include&/span& &span class=&cpf&&&leptjson.h&&/span&&span class=&cp&&&/span&
&span class=&k&&static&/span& &span class=&kt&&int&/span& &span class=&n&&main_ret&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&k&&static&/span& &span class=&kt&&int&/span& &span class=&n&&test_count&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&k&&static&/span& &span class=&kt&&int&/span& &span class=&n&&test_pass&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span&
&span class=&cp&&#define EXPECT_EQ_BASE(equality, expect, actual, format) \&/span&
&span class=&cp&&
do {\&/span&
&span class=&cp&&
test_count++;\&/span&
&span class=&cp&&
if (equality)\&/span&
&span class=&cp&&
test_pass++;\&/span&
&span class=&cp&&
else {\&/span&
&span class=&cp&&
fprintf(stderr, &%s:%d: expect: & format & actual: & format &\n&, __FILE__, __LINE__, expect, actual);\&/span&
&span class=&cp&&
main_ret = 1;\&/span&
&span class=&cp&&
&span class=&cp&&
} while(0)&/span&
&span class=&cp&&#define EXPECT_EQ_INT(expect, actual) EXPECT_EQ_BASE((expect) == (actual), expect, actual, &%d&)&/span&
&span class=&k&&static&/span& &span class=&kt&&void&/span& &span class=&nf&&test_parse_null&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&n&&lept_value&/span& &span class=&n&&v&/span&&span class=&p&&;&/span&
&span class=&n&&v&/span&&span class=&p&&.&/span&&span class=&n&&type&/span& &span class=&o&&=&/span& &span class=&n&&LEPT_TRUE&/span&&span class=&p&&;&/span&
&span class=&n&&EXPECT_EQ_INT&/span&&span class=&p&&(&/span&&span class=&n&&LEPT_PARSE_OK&/span&&span class=&p&&,&/span& &span class=&n&&lept_parse&/span&&span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&n&&v&/span&&span class=&p&&,&/span& &span class=&s&&&null&&/span&&span class=&p&&));&/span&
&span class=&n&&EXPECT_EQ_INT&/span&&span class=&p&&(&/span&&span class=&n&&LEPT_NULL&/span&&span class=&p&&,&/span& &span class=&n&&lept_get_type&/span&&span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&n&&v&/span&&span class=&p&&));&/span&
&span class=&p&&}&/span&
&span class=&cm&&/* ... */&/span&
&span class=&k&&static&/span& &span class=&kt&&void&/span& &span class=&nf&&test_parse&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&n&&test_parse_null&/span&&span class=&p&&();&/span&
&span class=&cm&&/* ... */&/span&
&span class=&p&&}&/span&
&span class=&kt&&int&/span& &span class=&nf&&main&/span&&span class=&p&&()&/span& &span class=&p&&{&/span&
&span class=&n&&test_parse&/span&&span class=&p&&();&/span&
&span class=&n&&printf&/span&&span class=&p&&(&/span&&span class=&s&&&%d/%d (%3.2f%%) passed&/span&&span class=&se&&\n&/span&&span class=&s&&&&/span&&span class=&p&&,&/span& &span class=&n&&test_pass&/span&&span class=&p&&,&/span& &span class=&n&&test_count&/span&&span class=&p&&,&/span& &span class=&n&&test_pass&/span& &span class=&o&&*&/span& &span class=&mf&&100.0&/span& &span class=&o&&/&/span& &span class=&n&&test_count&/span&&span class=&p&&);&/span&
&span class=&k&&return&/span& &span class=&n&&main_ret&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&现时只提供了一个 EXPECT_EQ_INT(expect, actual) 的宏,每次使用这个宏时,如果 expect != actual(预期值不等于实际值),便会输出错误信息。 若按照 TDD 的步骤,我们先写一个测试,如上面的 test_parse_null(),而 lept_parse() 只返回 LEPT_PARSE_OK:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&/Users/miloyip/github/json-tutorial/tutorial01/test.c:27: expect: 0 actual: 1
1/2 (50.00%) passed
&/code&&/pre&&/div&&p&第一个返回 LEPT_PARSE_OK,所以是通过的。第二个测试因为 lept_parse() 没有把 v.type 改成 LEPT_NULL,造成失败。我们再实现 lept_parse() 令到它能通过测试。&/p&&p&然而,完全按照 TDD 的步骤来开发,是会减慢开发进程。所以我个人会在这两种极端的工作方式取平衡。通常会在设计 API 后,先写部分测试代码,再写满足那些测试的实现。&/p&&h1&6. 宏的编写技巧&/h1&&p&有些同学可能不了解 EXPECT_EQ_BASE 宏的编写技巧,简单说明一下。反斜线代表该行未结束,会串接下一行。而如果宏里有多过一个语句(statement),就需要用 do { /*&em&...*&/em&/ } while(0) 包裹成单个语句,否则会有如下的问题:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&cp&&#define M() a(); b()&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&cond&/span&&span class=&p&&)&/span&
&span class=&n&&M&/span&&span class=&p&&();&/span&
&span class=&k&&else&/span&
&span class=&nf&&c&/span&&span class=&p&&();&/span&
&span class=&cm&&/* 预处理后 */&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&cond&/span&&span class=&p&&)&/span&
&span class=&n&&a&/span&&span class=&p&&();&/span& &span class=&n&&b&/span&&span class=&p&&();&/span&
&span class=&k&&else&/span& &span class=&cm&&/* &- else 缺乏对应 if */&/span&
&span class=&n&&c&/span&&span class=&p&&();&/span&
&/code&&/pre&&/div&&p&只用 {} 也不行:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&cp&&#define M() { a(); b(); }&/span&
&span class=&cm&&/* 预处理后 */&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&cond&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span& &span class=&n&&a&/span&&span class=&p&&();&/span& &span class=&n&&b&/span&&span class=&p&&();&/span& &span class=&p&&};&/span& &span class=&cm&&/* 最后的分号代表 if 语句结束 */&/span&
&span class=&k&&else&/span&
&span class=&cm&&/* else 缺乏对应 if */&/span&
&span class=&n&&c&/span&&span class=&p&&();&/span&
&/code&&/pre&&/div&&p&用 do while 就行了:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&cp&&#define M() do { a(); b(); } while(0)&/span&
&span class=&cm&&/* 预处理后 */&/span&
&span class=&k&&if&/span& &span class=&p&&(&/span&&span class=&n&&cond&/span&&span class=&p&&)&/span&
&span class=&k&&do&/span& &span class=&p&&{&/span& &span class=&n&&a&/span&&span class=&p&&();&/span& &span class=&n&&b&/span&&span class=&p&&();&/span& &span class=&p&&}&/span& &span class=&k&&while&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&);&/span&
&span class=&k&&else&/span&
&span class=&nf&&c&/span&&span class=&p&&();&/span&
&/code&&/pre&&/div&&h1&7. 实现解析器&/h1&&p&有了 API 的设计、单元测试,终于要实现解析器了。&/p&&p&首先为了减少解析函数之间传递多个参数,我们把这些数据都放进一个 lept_context 结构体:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&k&&typedef&/span& &span class=&k&&struct&/span& &span class=&p&&{&/span&
&span class=&k&&const&/span& &span class=&kt&&char&/span&&span class=&o&&*&/span& &span class=&n&&json&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&&span class=&n&&lept_context&/span&&span class=&p&&;&/span&
&span class=&cm&&/* ... */&/span&
&span class=&cm&&/* 提示:这里应该是 JSON-text = ws value ws,*/&/span&
&span class=&cm&&/* 以下实现没处理最后的 ws 和 LEPT_PARSE_ROOT_NOT_SINGULAR */&/span&
&span class=&kt&&int&/span& &span class=&nf&&lept_parse&/span&&span class=&p&&(&/span&&span class=&n&&lept_value&/span&&span class=&o&&*&/span& &span class=&n&&v&/span&&span class=&p&&,&/span& &span class=&k&&const&/span& &span class=&kt&&char&/span&&span class=&o&&*&/span& &span class=&n&&json&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&n&&lept_context&/span& &span class=&n&&c&/span&&span class=&p&&;&/span&
&span class=&n&&assert&/span&&span class=&p&&(&/span&&span class=&n&&v&/span& &span class=&o&&!=&/span& &span class=&nb&&NULL&/span&&span class=&p&&);&/span&
&span class=&n&&c&/span&&span class=&p&&.&/span&&span class=&n&&json&/span& &span class=&o&&=&/span& &span class=&n&&json&/span&&span class=&p&&;&/span&
&span class=&n&&v&/span&&span class=&o&&-&&/span&&span class=&n&&type&/span& &span class=&o&&=&/span& &span class=&n&&LEPT_NULL&/span&&span class=&p&&;&/span&
&span class=&n&&lept_parse_whitespace&/span&&span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&n&&c&/span&&span class=&p&&);&/span&
&span class=&k&&return&/span& &span class=&n&&lept_parse_value&/span&&span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&n&&c&/span&&span class=&p&&,&/span& &span class=&n&&v&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&暂时我们只储存 json 字符串当前位置,之后的单元我们需要加入更多内容。&/p&&p&lept_parse() 若失败,会把 v 设为 null 类型,所以这里先把它设为 null,让 lept_parse_value() 写入解析出来的根值。&/p&&p&leptjson 是一个手写的递归下降解析器(recursive descent parser)。由于 JSON 语法特别简单,我们不需要写分词器(tokenizer),只需检测下一个字符,便可以知道它是哪种类型的值,然后调用相关的分析函数。对于完整的 JSON 语法,跳过空白后,只需检测当前字符:&/p&&ul&&li&n ? null&/li&&li&t ? true&/li&&li&f ? false&/li&&li&& ? string&/li&&li&0-9/- ? number&/li&&li&[ ? array&/li&&li&{ ? object&/li&&/ul&&p&所以,我们可以按照 JSON 语法一节的 EBNF 简单翻译成解析函数:&/p&&br&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&cp&&#define EXPECT(c, ch) do { assert(*c-&json == (ch)); c-&json++; } while(0)&/span&
&span class=&cm&&/* ws = *(%x20 / %x09 / %x0A / %x0D) */&/span&
&span class=&k&&static&/span& &span class=&kt&&void&/span& &span class=&nf&&lept_parse_whitespace&/span&&span class=&p&&(&/span&&span class=&n&&lept_context&/span&&span class=&o&&*&/span& &span class=&n&&c&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&k&&const&/span& &span class=&kt&&char&/span& &span class=&o&&*&/span&&span class=&n&&p&/span& &span class=&o&&=&/span& &span class=&n&&c&/span&&span class=&o&&-&&/span&&span class=&n&&json&/span&&span class=&p&&;&/span&
&span class=&k&&while&/span& &span class=&p&&(&/span&&span class=&o&&*&/span&&span class=&n&&p&/span& &span class=&o&&==&/span& &span class=&sc&&' '&/span& &span class=&o&&||&/span& &span class=&o&&*&/span&&span class=&n&&p&/span& &span class=&o&&==&/span& &span class=&sc&&'\t'&/span& &span class=&o&&||&/span& &span class=&o&&*&/span&&span class=&n&&p&/span& &}

我要回帖

更多关于 娘子 为夫好寂寞txt 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信