newdoge是什么意思
A. Creeper Aw Man歌词是谁要是说完了全部歌词我就叫谁爸爸
creeper?
苦力怕?
awww man
哦♂男人(滑稽保命)
So way back in the mine got are pickaxe swingin' from side to side
进入矿井 拿起十字镐准备挖矿 从一边挖到另一边
Side side to side
每个角落都不放过
这是一项艰苦的任务 希望今晚能挖到钻石
Night night diamonds tonight
今晚挖到钻石
Heads up
小心谨慎
You hear a sound turn around and look up
你听到奇怪的声音 转身抬头 四处观望
Total shock fills your body
汗毛竖立 震惊不已
Oh no it's you again I can never forget those eyes
又是你 你的那双眼睛 我永生难忘
Eyes eyes eyes eyes eyes
眼睛
'Cause baby tonight the creeper's
宝贝 今晚苦力怕
Tryin' to steal all your stuff again
想要再次把你的物品洗劫一空
'Cause baby tonight
宝贝 今晚
Grab your pick shovel and bolt again
带上工具
Bolt again gain
绝地重生
And run run until it's done done
东奔西走 直到游戏结束
Until the sun comes up in the morn'
直到太阳升起
'Cause baby tonight
宝贝 今晚
The creeper's tryin' to steal all your stuff again
苦力怕想要再次把你的物品洗劫一空
Stuff again gain
全部偷走
Just when you think you're safe
就在你以为安全的时候
Over here some hissing from right behind right right behind
身后传来嘶嘶声
That's a nice life you have
你现在的生活还不错
Shame it's got to end at this time time time
不过真遗憾 这次一切终将结束
Time time time time
就是现在
发生爆炸 代表你生命的血量掉了半截
And you could use a 1 up
你可以借助道具满血复活
Get inside don't be tardy
赶紧躲起来 别迟疑
So now you're stuck in there
你现在进退维谷
Halve a heart is left but don't die
奄奄一息 差一点死掉
Die die die die die
差点死掉
'Cause baby tonight
宝贝 今晚
The creeper's tryin' to steal all your stuff again
苦力怕想要再次把你的物品洗劫一空
'Cause baby tonight
宝贝 今晚
Grab your pick shovel and bolt again bolt again gain
带上工具 绝地重生
And run run until it's done done
东奔西走 直到游戏结束
Until the sun comes up in the morn'
直到太阳升起
'Cause baby tonight
宝贝 今晚
The creeper's tryin' to steal all your stuff again
苦力怕想要再次把你的物品洗劫一空
Ha creepers ya mine
苦力怕 你是我的
Dig up diamonds
挖钻石
Craft those diamonds make some armor
把钻石打造成盔甲
Get it baby
宝贝 马到成功
Go and forge that like you so MLG pro
发掘像你这种职业玩家
The sword's made of diamonds
这把剑是钻石做的
So come at me bro
向我发起进攻
Ha training in your room under the torch light
房间里点燃火把 借着光亮加紧训练
Hone that form to get you ready for the big fight
潜心学习 为即将到来的战斗做好准备
Every single day in the whole night
日日夜夜
Creeper's out prowlin' whoo alright
苦力怕在不断繁殖
Look at me look at you
看看我 看看你自己
Take my revenge that's what I'm gonna do
我要复仇 这是我要做的事
I'm a warrior baby what else is new
我是英勇的战士 宝贝 不足为奇
And my blade's gonna tear through you
我要让你尝尝利剑穿心的滋味
'Cause baby tonight
宝贝 今晚
The creeper's tryin' to steal all your stuff again get your stuff
苦力怕想要再次把你的物品洗劫一空
Yea let's take back the world
夺回属于我们的世界
Yea baby tonight
宝贝 今晚
Grab your sword armor and go it's on
拿上你的剑 穿上盔甲 行动起来
Take your revenge whoo
开始复仇
Ohh so fight fight
加入战斗
Like it's the last
全力以赴 浴血奋战
Last night of your life
直到生命终结
Life show them your bite whoo
给他们点教训
'Cause baby tonight
宝贝 今晚
The creeper's tryin' to steal all your stuff again
苦力怕想要再次把你的物品洗劫一空
'Cause baby tonight
宝贝 今晚
Grab your pick shovel and bolt again bolt again gain
带上工具 绝地重生
And run run until it's done
东奔西走 直到游戏结束
Done until the sun comes up in the morn'
直到太阳升起
'Cause baby tonight
宝贝 今晚
The creeper's tryin' to steal all your stuff again
苦力怕想要再次把你的物品洗劫一空
B. 如何判断两个接口返回的json数据是否有diff
背景:在工作中经常会遇到接口迁移,但是呢又需要保证迁移前后返回的数据是一致的,这时候就需要做diff测试
分析:接口返回的json 数据中包含很多类型的字段,例如:object,jsonObject,String,jsonArray等等,因为需要分别几个函数实现:jsonObject,jsonArray,Object的diff
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
public class BasicDiff {
public static class DiffResult{
private Boolean hasDiff = false;
private String diffMessage;
public Boolean getHasDiff() {
return hasDiff;
}
public void setHasDiff(Boolean hasDiff) {
this.hasDiff = hasDiff;
}
public String getDiffMessage() {
return diffMessage;
}
public void setDiffMessage(String diffMessage) {
this.diffMessage = diffMessage;
}
@Override
public String toString() {
return "DiffResult{" +
"hasDiff=" + hasDiff +
", diffMessage='" + diffMessage + ''' +
'}';
}
}
DiffResult diffResult=new DiffResult();
public DiffResult compareObject(Object oldObject,Object newObject, String key, int index) { if(oldObject == null || newObject == null){
diffResult.hasDiff = true;
diffResult.setDiffMessage(key+" 的value中old和new有一个或者两个为null"); return diffResult;
} if(oldObject!=null&&newObject!=null) { if (diffResult.getHasDiff()) { return diffResult;
} if (oldObject != null && newObject != null && oldObject.getClass() != newObject.getClass()) {
diffResult.hasDiff = true;
diffResult.setDiffMessage(key + " 的value的old和new 的类型不一致"); return diffResult;
} if (oldObject instanceof JSONObject && newObject instanceof JSONObject) {
compareJsonObject((JSONObject) oldObject, (JSONObject) newObject, key, index); if (diffResult.getHasDiff()) { return diffResult;
}
} else if (oldObject instanceof JSONArray && newObject instanceof JSONArray) {
compareJsonArray((JSONArray) oldObject, (JSONArray) newObject, key, index); if (diffResult.getHasDiff()) { return diffResult;
}
} else {
String oldStr = oldObject.toString();
String newStr = newObject.toString(); if (!oldStr.equals(newStr)) {
diffResult.hasDiff = true;
diffResult.setDiffMessage("index: " + index + ", " + key + " 的value中old和new 的值不相等"); return diffResult;
}
}
} return diffResult;
} public DiffResult compareJsonArray(JSONArray oldJarr, JSONArray newJarr, String key, int index) { if(diffResult.getHasDiff()){ return diffResult;
} if(oldJarr == null || newJarr == null){
diffResult.hasDiff = true;
diffResult.setDiffMessage(key+" 的value中两个结果存在null"); return diffResult;
} if(oldJarr.size() != newJarr.size()){
diffResult.hasDiff = true;
diffResult.setDiffMessage("index:"+ index+", "+key + " 的value中old和new 数组size不相等"); return diffResult;
} //jsonarray中元素是个object,排序之后再比较
if(oldJarr.size() > 0 && !(oldJarr.get(0) instanceof JSONObject) && !(oldJarr.get(0) instanceof JSONArray)){
String[] arrOld = new String[oldJarr.size()];
String[] arrNew = new String[oldJarr.size()];
List<String> tmp = new ArrayList<String>(); for(int i = 0; i < arrOld.length; i++){
arrOld[i] = oldJarr.get(i).toString();
arrNew[i] = newJarr.get(i).toString();
tmp.add(oldJarr.get(i).toString());
}
Arrays.sort(arrOld);
Arrays.sort(arrNew); for(int i = 0; i < arrNew.length; i++){ if(!arrOld[i].equals(arrNew[i])){
diffResult.hasDiff = true;
diffResult.setDiffMessage("index:"+ index+", "+key + " 的value中第"+tmp.indexOf(arrOld[i])+"个old和new 值不相等"); return diffResult;
}
}
}else{ for(int i = 0; i < oldJarr.size(); i++){ if(oldJarr.get(i) != null && newJarr.get(i) != null && oldJarr.get(i).getClass()!= newJarr.get(i).getClass()){
diffResult.hasDiff = true;
diffResult.setDiffMessage("index:"+ index+", "+key + " 的value中old和new 的类型不一致"); return diffResult;
} if(oldJarr.get(i) instanceof JSONObject){
JSONObject jold = (JSONObject)oldJarr.get(i);
JSONObject jnew = (JSONObject)newJarr.get(i); if(jold.equals(jnew)){ continue;
}else{
Boolean cd = customHasDiff(oldJarr,newJarr,key,i,diffResult); if(!cd) continue;
compareJsonObject((JSONObject)oldJarr.get(i),(JSONObject)newJarr.get(i),key,i); if(diffResult.getHasDiff()){ return diffResult;
}
}
}else if(oldJarr.get(i) instanceof JSONArray) {
compareJsonArray((JSONArray) oldJarr.get(i), (JSONArray) newJarr.get(i), key, i); if(diffResult.getHasDiff()){ return diffResult;
}
}
}
} return diffResult;
}
public DiffResult compareJsonObject(JSONObject oldJson, JSONObject newJson, String key, int index) {
if(diffResult.getHasDiff()){
return diffResult;
}
if(oldJson == null || newJson == null){
diffResult.hasDiff = true;
diffResult.setDiffMessage(key+" 的value中两个结果存在null");
return diffResult;
}
Set<String> sold = oldJson.keySet();
Set<String> snew = newJson.keySet();
if (key.isEmpty()) {
key = "root";
}
//keysize是否相等
if (sold.size() != snew.size()) {
diffResult.hasDiff = true;
diffResult.setDiffMessage(key + " 的keySet的数量不一致,线上有" + sold.size() + "个key,待测服务有" + snew.size() + "个key");
return diffResult;
}
//key是否相同
for (String kold : sold) {
if (!snew.contains(kold)) {
diffResult.hasDiff = true;
diffResult.setDiffMessage("待测服务的" + key + "的keyset不包含" + kold);
return diffResult;
}
}
//value进行校验
for(String kold :sold){
//此处是进行过滤的,如果哪些字段不需要进行diff,就在这里过滤掉,例如接口返回的globalid,每次返回的值都不一样,不需要进行diff
if(kold.equals("globalId")) {
continue;
}
Object oldObject = oldJson.get(kold);
Object newObject = newJson.get(kold);
compareObject(oldObject, newObject, key + "->" + kold, index);
if (diffResult.getHasDiff()) {
return diffResult;
}
}
return diffResult;
}
}
String resultOnline = httpClientTool.doGetNoProxy(onlineUrl, null, "utf-8",headers);
Thread.sleep(100);
String resultNeedDiff=httpClientTool.doGetNoProxy(needDiffUrl,null,"utf-8",headers);
JSONObject resultObject1=JSON.parseObject(resultOnline);
JSONObject resultObject2=JSON.parseObject(resultNeedDiff);
BasicDiff bf=new BasicDiff();
d1=bf.compareObject(resultObject1,resultObject2,"",0)
if(d1.getHasDiff()){
System.out.println("============有diff==========");
System.out.println(d1.getHasDiff());
}
C. 🌚黑脸月亮啥意思
黑脸月亮的笑更狡黠,像是在开玩笑,有点微博doge的意思,黄脸月亮的笑更悠闲更安逸,好像带了丢丢嘲讽。一般就是开玩笑用黑脸,淡定的时候用黄脸。。。应该没这么讲究。不过iOS新版的两个月亮没旧版的经典呢,磨皮之后失去了精髓。
微笑的朔月,这个表情有些诡异,眼神有些假惺惺,同时还含沙射影地表示嘲讽、自嘲的意思。它经常和微笑的月亮一起使用。
现实聊天中,它还表示话中有话、正话反说、反话正说,想要调侃对方但又不希望对方责怪你。
在统一码中分别定义是:
U+1F31A :new_moon_with_face: 有脸的新月(苹果做成黑脸的那个)
U+1F31D :full_moon_with_face: 有脸的满月
仅此而已,统一码没有规定必须是什么表情。
你的截屏中是苹果的设计,在其他平台上则有各自的设计,你发给其他平台的话,别人看到的可能是别的表情的月亮,比如视窗(字体:Segoe UI Emoji)这两个有脸月亮都是闭眼微笑。因此,关于“这两字符表情有什么区别”的说法可以无视。