网站建设技术标书网站开发实例视频

bicheng/2026/1/22 6:46:35/文章来源:
网站建设技术标书,网站开发实例视频,企业网站建设的原则包括,东莞网络推广lua解析器 void Start(){//Lua解析器 能够让我们在Unity中执行Lua//一般情况下 保持它的唯一性LuaEnv env new LuaEnv();//执行Lua语言env.DoString(print(你好世界));//执行一个Lua脚本 Lua知识点 #xff1a;多脚本执行 require//默认寻找脚本的路径 是在 Res… lua解析器 void Start(){//Lua解析器 能够让我们在Unity中执行Lua//一般情况下 保持它的唯一性LuaEnv env new LuaEnv();//执行Lua语言env.DoString(print(你好世界));//执行一个Lua脚本 Lua知识点 多脚本执行 require//默认寻找脚本的路径 是在 Resources下 并且 因为在这里//估计是通过 Resources.Load去加载Lua脚本 txt bytes等等//所以Lua脚本 后缀要加一个txtenv.DoString(require(Main));//帮助我们清除Lua中我们没有手动释放的对象 垃圾回收//帧更新中定时执行 或者 切场景时执行env.Tick();//销毁Lua解析器 env.Dispose();} 文件加载重定向 env.AddLoader(MyCustomLoader); private byte[] MyCustomLoader(ref string filePath){return null; } 解析器管理器 Lua管理器 提供 lua解析器保证解析器的唯一性--使用单例模式 (Lua脚本会放到AB包中最终通过加载AB包再加载其中的lua脚本资源来执行但是AB包中如果要加载文本后缀有一定的限制.lua不能被识别) 从AB包加载文件 private byte[] MyCustomABLoader(ref string filePath){//Debug.Log(进入AB包加载 重定向函数);//从AB包中加载lua文件//加载AB包//string path Application.streamingAssetsPath /lua;//AssetBundle ab AssetBundle.LoadFromFile(path);//加载Lua文件 返回//TextAsset tx ab.LoadAssetTextAsset(filePath .lua);//加载Lua文件 byte数组//return tx.bytes;//通过我们的AB包管理器 加载的lua脚本资源TextAsset lua ABMgr.GetInstance().LoadResTextAsset(lua, filePath .lua);if (lua ! null)return lua.bytes;elseDebug.Log(MyCustomABLoader重定向失败文件名为 filePath);return null;}Lua脚本会放在AB包 最终会通过加载AB包再加载其中的Lua脚本资源 来执行 获取全局变量 只要在xlua中执行lua程序都会自动进入重定向文件找 Lua代码 testNumber 1 testBool true testFloat 1.2 testString 123C#代码 //使用lua解析器luaenv中的 Global属性 利用大G表int i LuaMgr.GetInstance().Global.Getint(testNumber);Debug.Log(testNumber: i);i 10;//改值LuaMgr.GetInstance().Global.Set(testNumber, 55);//值拷贝 不会影响原来Lua中的值int i2 LuaMgr.GetInstance().Global.Getint(testNumber);Debug.Log(testNumber_i2: i2);bool b LuaMgr.GetInstance().Global.Getbool(testBool);Debug.Log(testBool: b);float f LuaMgr.GetInstance().Global.Getfloat(testFloat);Debug.Log(testFloat: f);double d LuaMgr.GetInstance().Global.Getdouble(testFloat);Debug.Log(testFloat_double: d);string s LuaMgr.GetInstance().Global.Getstring(testString);Debug.Log(testString: s); 不能直接得到lua代码中的本地变量local 获取全局函数 lua代码 --无参无返回 testFun function()print(无参无返回) end--有参有返回 testFun2 function(a)print(有参有返回)return a 1 end--多返回 testFun3 function(a)print(多返回值)return 1, 2, false, 123, a end--变长参数 testFun4 function(a, ...)print(变长参数)print(a)arg {...}for k,v in pairs(arg) doprint(k,v)end end c#代码 c#去存函数--使用委托 //无参无返回的获取//委托CustomCall call LuaMgr.GetInstance().Global.GetCustomCall(testFun);call();//Unity自带委托UnityAction ua LuaMgr.GetInstance().Global.GetUnityAction(testFun);ua();//C#提供的委托Action ac LuaMgr.GetInstance().Global.GetAction(testFun);ac();//Xlua提供的一种 获取函数的方式 少用//需要引用xluaLuaFunction lf LuaMgr.GetInstance().Global.GetLuaFunction(testFun);lf.Call();//有参有返回CustomCall2 call2 LuaMgr.GetInstance().Global.GetCustomCall2(testFun2);Debug.Log(有参有返回 call2(10));//C#自带的泛型委托 方便我们使用Funcint, int sFun LuaMgr.GetInstance().Global.GetFuncint, int(testFun2);Debug.Log(有参有返回 sFun(20));//Xlua提供的LuaFunction lf2 LuaMgr.GetInstance().Global.GetLuaFunction(testFun2);Debug.Log(有参有返回 lf2.Call(30)[0]);//多返回值//使用 out 和 ref 来接收CustomCall3 call3 LuaMgr.GetInstance().Global.GetCustomCall3(testFun3);int b;bool c;string d;int e;Debug.Log(第一个返回值 call3(100, out b, out c, out d, out e));Debug.Log(b _ c _ d _ e);CustomCall4 call4 LuaMgr.GetInstance().Global.GetCustomCall4(testFun3);int b1 0;bool c1 true;string d1 ;int e1 0;Debug.Log(第一个返回值 call4(200, ref b1, ref c1, ref d1, ref e1));Debug.Log(b1 _ c1 _ d1 _ e1);//XluaLuaFunction lf3 LuaMgr.GetInstance().Global.GetLuaFunction(testFun3);object[] objs lf3.Call(1000);for( int i 0; i objs.Length; i ){Debug.Log(第 i 个返回值是 objs[i]);}//变长参数CustomCall5 call5 LuaMgr.GetInstance().Global.GetCustomCall5(testFun4);call5(123, 1, 2, 3, 4, 5, 566, 7, 7, 8, 9, 99);LuaFunction lf4 LuaMgr.GetInstance().Global.GetLuaFunction(testFun4);lf4.Call(456, 6, 7, 8, 99, 1); 自定义的委托需要在c#脚本中添加特性并在unity的xlua中生成code //无参无返回值的委托 public delegate void CustomCall();//有参有返回 的委托 //该特性是在XLua命名空间中的 //加了过后 要在编辑器里 生成 Lua代码 [CSharpCallLua] public delegate int CustomCall2(int a);[CSharpCallLua] public delegate int CustomCall3(int a, out int b, out bool c, out string d, out int e); [CSharpCallLua] public delegate int CustomCall4(int a, ref int b, ref bool c, ref string d, ref int e);[CSharpCallLua] public delegate void CustomCall5(string a, params int[] args); 表Table映射 List 和 Dictionary Lua代码 --List testList {1,2,3,4,5,6} testList2 {123, 123, true, 1, 1.2}--Dictionary testDic {[1] 1,[2] 2,[3] 3,[4] 4 }testDic2 {[1] 1,[true] 1,[false] true,[123] false } C#代码 //同一类型ListListint list LuaMgr.GetInstance().Global.GetListint(testList);Debug.Log(*******************List************************);for ( int i 0; i list.Count; i ){Debug.Log(list[i]);}//值拷贝 浅拷贝 不会改变lua中的内容list[0] 100;Listint list2 LuaMgr.GetInstance().Global.GetListint(testList);Debug.Log(list2[0]);//不指定类型 objectListobject list3 LuaMgr.GetInstance().Global.GetListobject(testList2);Debug.Log(*******************List object************************);for (int i 0; i list3.Count; i){Debug.Log(list3[i]);}Debug.Log(*******************Dictionary************************);Dictionarystring, int dic LuaMgr.GetInstance().Global.GetDictionarystring, int(testDic);foreach (string item in dic.Keys){Debug.Log(item _ dic[item]);}dic[1] 100000;//值拷贝 不会改变lua中的内容Dictionarystring, int dic2 LuaMgr.GetInstance().Global.GetDictionarystring, int(testDic);Debug.Log(dic2[1]);Debug.Log(*******************Dictionary object************************);Dictionaryobject, object dic3 LuaMgr.GetInstance().Global.GetDictionaryobject, object(testDic2);foreach (object item in dic3.Keys){Debug.Log(item _ dic3[item]);} 表映射到 类 lua代码 testClass {testInt 2,testBool true,testFloat 1.2,testString 123,testFun function()print(123123123)end } c#代码 CallLuaClass obj LuaMgr.GetInstance().Global.GetCallLuaClass(testClass);Debug.Log(obj.testInt);Debug.Log(obj.testBool);//Debug.Log(obj.testFloat);Debug.Log(obj.testString);Debug.Log(obj.i);Debug.Log(嵌套 obj.testInClass.testInInt);obj.testFun();//值拷贝 改变了它 不会改变Lua表里的内容obj.testInt 100;CallLuaClass obj2 LuaMgr.GetInstance().Global.GetCallLuaClass(testClass);Debug.Log(obj2.testInt); 在类声明成员变量的过程中名字一定要和lua的相同 自定义中的变量可以更多也可以更少如果变量比 lua中的少 就会忽略它如果变量比 lua中的多 不会赋值 也会忽略 public class CallLuaClass {public int testInt;public bool testBool;public float testString;public UnityAction testFun;public CallLuaInClass testInClass;public int i;public void Test(){Debug.Log(testInt);} } 表映射接口 接口的实现 由于在接口中不允许成员变量的存在因此使用属性来接受Lua中的变量 改了c#代码结构后先在xlua中清掉原来的再生成新的code [CSharpCallLua] public interface ICSharpCallInterface {int testInt{get;set;}bool testBool{get;set;}string testString{get;set;}UnityAction testFun{get;set;}float testFloat222{get;set;} } 接口是引用拷贝而不是值拷贝 Lua Table 映射 table 因为效率低所以不建议使用LuaTable和LuaFunction LuaTable table LuaMgr.GetInstance().Global.GetLuaTable(testClas);Debug.Log(table.Getint(testInt));Debug.Log(table.Getbool(testBool));Debug.Log(table.Getfloat(testFloat));Debug.Log(table.Getstring(testString));table.GetLuaFunction(testFun).Call();table.Set(testInt, 666);Debug.Log(table.Getint(testInt));LuaTable table2 LuaMgr.GetInstance().Global.GetLuaTable(testClas);Debug.Log(table2.Getint(testInt));table.Dispose();table2.Dispose(); 是引用拷贝用完后记得销毁不定时清空的话会产生内存泄露 Lua使用C#类 Lua没有办法直接访问c#,一定是先从C#调用Lua脚本后才把核心逻辑交给Lua编写 lua中使用C#的类 CS.命名空间.类名 Unity的类 比如 GameObject Transform等等 —— CS.UnityEngine.类名 CS.UnityEngine.GameObject --通过C#中的类 实例化一个对象 lua中没有new 所以直接 类名括号就是实例化对象 --默认调用的 相当于就是无参构造 local obj1 CS.UnityEngine.GameObject() local obj2 CS.UnityEngine.GameObject(HFUT) 为了方便使用 并且节约性能 可以定义全局变量存储 C#中的类 GameObject CS.UnityEngine.GameObject local obj3 GameObject(HFUTER) 类中的静态对象 可以直接使用.来调用 得到对象中的成员变量  直接对象 . 即可 如果使用对象中的 成员方法一定要加: 自定义类使用方法相同只是命名空间不同而已 继承了Mono的类 是不能直接new 其依附于gameobject 可以通过GameObject的AddComponent添加脚本由于xlua中不支持 无参泛型函数  所以要使用另一个重载 --xlua提供了一个重要方法 typeof 可以得到类的Type obj5:AddComponent(typeof(CS.LuaCallCSharp)) 调用枚举 CS.命名空间.枚举名.枚举成员也支持取别名  PrimitiveType CS.UnityEngine.PrimitiveType GameObject CS.UnityEngine.GameObject 自定义枚举使用方法一样,注意命名空间即可 E_MyEnum CS.E_MyEnum--枚举转换相关 local c E_MyEnum.Idle--数值转枚举 local a E_MyEnum.__CastFrom(1)--字符串转枚举 local b E_MyEnum.__CastFrom(Atk)调用数组/List/字典 --C#怎么用 lua就怎么用 不能使用#去获取长度 print(obj.array.Length) 遍历要注意 虽然lua中索引从1开始,但是数组是C#那边的规则 所以 还是得按C#的来 --访问元素 print(obj.array[0])for i0,obj.array.Length-1 doprint(obj.array[i]) end Lua中创建一个C#的数组 Lua中表示数组和List可以用表;如果创建C#中的数组 使用 Array类中的静态方法即可数组的本质是一个Array类 local array2 CS.System.Array.CreateInstance(typeof(CS.System.Int32), 10) Lua调用C# list obj.list:Add(1) obj.list:Add(2) obj.list:Add(3) --长度 print(obj.list.Count) --遍历 for i0,obj.list.Count - 1 doprint(obj.list[i]) end print(obj.list) 在Lua中创建一个List对象 //老版本 local list2 CS.System.Collections.Generic[List1[System.String]]()//新版本 local List_String CS.System.Collections.Generic.List(CS.System.String) local list3 List_String() Lua调用C# dictionary相关知识点 使用和C#一致但遍历区别很大 for k,v in pairs(obj.dic) doprint(k,v) end 在Lua中创建一个字典对象 local Dic_String_Vector3 CS.System.Collections.Generic.Dictionary(CS.System.String, CS.UnityEngine.Vector3) local dic2 Dic_String_Vector3() 第一步相当于得到了一个 Dictionarystring, Vector3 的一个类别名 需要再实例化 在Lua中创建的字典如果直接通过键中括号得是得不到的是nil --错误写法 print(dic2[123]) --正确写法 print(dic2:TryGetValue(123)) --如果要通过键获取值 要通过这个固定方法输出和上述不同 print(dic2:get_Item(123)) dic2:set_Item(123, nil) print(dic2:get_Item(123)) 调用拓展方法 定义拓展方法 public class Lesson{public string nameHFUT; public void Speak(string str){Debug.Log(str);} }public static class Tools{public static void Move(this Lesson obj){} } 使用静态方法CS.命名空间.类名.静态方法名() 成员方法实例化出来用使用成员方法一定用冒号 local obj Lesson4() obj:Speak(Unity)--使用拓展方法 和使用成员方法 一致obj:Move() 发生报错是因为要调用 C#中某个类的拓展方法 那一定要在拓展方法的静态类前面加上LuaCallCSharp特性建议在Lua中要使用的类都加上该特性可以提升性能反射机制调用会降低效率 ref 和 out ref参数:会以多返回值的形式返回给lua,如果函数存在返回值,那么第一个值就是该返回值,之后的返回值就是ref的结果从左到右一一对应(ref参数 需要传入一个默认值来占位置) --a 相当于 函数返回值 --b 第一个ref --c 第二个ref local a,b,c obj:RefFun(1, 0, 0, 1) out参数:会以多返回值的形式返回给lua,如果函数存在返回值,那么第一个值,就是该返回值(之后的返回值就是out的结果,其他从左到右一一对应) --out参数 不需要传占位置的值 local a,b,c obj:OutFun(20,30) 混合使用时 综合上面的规则ref需占位/out不用传 第一个是函数的返回值之后从左到右依次对应ref或者out local a,b,c obj:RefOutFun(20,1) 调用重载函数 虽然Lua自己不支持写重载函数但是Lua支持调用C#中的重载函数   虽然支持调用C#重载函数但是因为Lua中的数值类型只有Number所以对C#中多精度的重载函数支持不好傻傻分不清。因此在使用时 可能出现意想不到的问题 为了解决重载函数含糊的问题xlua提供了解决方案---反射机制但是这种方法只做了解尽量别用 利用Type,Type是反射的关键类可以得到指定函数的相关信息Float的类名交Single local m1 typeof(CS.Lesson6):GetMethod(Calc, {typeof(CS.System.Int32)}) local m2 typeof(CS.Lesson6):GetMethod(Calc, {typeof(CS.System.Single)})--通过xlua提供的一个方法 把它转成lua函数来使用 --一般我们转一次 然后重复使用 local f1 xlua.tofunction(m1) local f2 xlua.tofunction(m2) --成员方法 第一个参数传对象 --静态方法 不用传对象 如果是成员方法——第一个参数传对象如果是静态方法——不用传对象 print(f1(obj, 10)) print(f2(obj, 10.2)) 委托和事件 委托是用来装函数的使用C#中的委托用来装lua函数 local fun function( )print(Lua函数Fun) end --如果第一次往委托中加函数 因为是nil 不能直接 --所以第一次 要先等 obj.del fun --obj.del obj.del fun obj.del obj.del fun 还可以这么写不过不建议 obj.del obj.del function( )print(HFUT) end 其他操作 obj.del obj.del - fun --委托执行 obj.del()--清空所有存储的函数 obj.del nil 事件: local fun2 function()print(事件加的函数) endobj:eventAction(, fun2) obj:DoEvent() obj:eventAction(-, fun2) 事件不能直接置空需要调用c#中包裹的清空函数 二维数组 for i0,obj.array:GetLength(0)-1 dofor j0,obj.array:GetLength(1)-1 doprint(obj.array:GetValue(i,j))end end 注意不能通过[0,0]或者[0][0]访问元素lua不支持这种索引方式 null 和 nil nil和null 没法进行比较 可以采用平替方式 1.        if rig:Equals(nil) then 2.        在c#和lua主脚本写一个判空函数 协程 C#中协程启动都是通过继承了Mono的类 通过里面的启动函数StartCoroutine 可以在场景中新建一个空物体  然后挂一个脚本上去 脚本继承mono使用它来开启协程 fun function()local a 1while true do--lua中 不能直接使用 C#中的 yield return --就使用lua中的协程返回coroutine.yield(WaitForSeconds(1))print(a)a a 1if a 10 then--停止协程和C#当中一样mono:StopCoroutine(b)endend end 不能直接将 lua函数传入到开启协程中要利用xlua提供的一个工具表 --一定是要通过require调用之后 才能用 util require(xlua.util) 如果要把lua函数当做协程函数传入必须先调用xlua.util中的cs_generator(lua函数) b mono:StartCoroutine(util.cs_generator(fun)) 调用泛型函数方法 lua中不支持没有约束的泛型函数也不支持有约束但是没有参数的泛型函数还不支持非class的约束用接口约束的 如何让上面不支持使用的泛型函数变得能用 答得到通用函数设置泛型类型再使用。 xlua.get_generic_method(类, 函数名) local testFun2 xlua.get_generic_method(CS.Lesson12, TestFun2) local testFun2_R testFun2(CS.System.Int32) --调用 --成员方法 第一个参数 传调用函数的对象 --静态方法 不用传 testFun2_R(obj, 1) 但是有一定的使用限制 Mono打包这种方式支持使用 il2cpp打包 如果泛型参数是引用类型才可以使用如果泛型参数是值类型除非C#那边已经调用过了同类型的泛型参数 lua中才能够被使用 热补丁 lua当中热补丁代码固定写法xlua.hotfix(类, 函数名, lua函数) --成员函数 第一个参数 self xlua.hotfix(CS.HotfixMain, Add, function(self, a, b)return a b end)--静态函数 不用传第一个参数 xlua.hotfix(CS.HotfixMain, Speak, function(a)print(a) end) 注意直接写好代码运 是会报错的必须做4个非常重要的操作 1.加特性 2.加宏 第一次开发热补丁需要加Project Settings-Player-Scripting Define Symbols 3.生成代码 4.hotfix 注入  注入时可能报错提示要引入Tools 只要我们修改了热补丁类的代码就需要重新执行hotfix 注入需要重新点击 注入 多函数替换 xlua.hotfix(类, {函数名 函数, 函数名 函数....}) xlua.hotfix(CS.HotfixMain, {Update function(self)print(os.time())end,Add function(self, a, b )return a bend,Speak function(a)print(a)end }) 构造函数-热补丁固定写法        [.ctor] 和别的函数不同构造函数不是替换而是先调用原逻辑再调用lua逻辑 析构函数固定写法 Finalize xlua.hotfix(CS.HotfixTest, {[.ctor] function()end,Speak function(self,a)end,--析构函数Finalize function()end }) 协程函数替换 要在lua中配合C#协程函数必须使用 util require(xlua.util) 如果是为打了Hotfix特性的C#类新加了函数内容,不能只注入 ,必须要先生成代码再注入,不然注入会报错 xlua.hotfix(CS.HotfixMain, {TestCoroutine function(self)--返回一个正儿八经的 xlua处理过的lua协程函数return util.cs_generator(function()while true docoroutine.yield(CS.UnityEngine.WaitForSeconds(1))print(Lua打补丁后的协程函数)endend)end }) 属性和索引器替换 属性进行热补丁重定向 set_属性名 是设置属性 的方法 get_属性名 是得到属性 的方法 xlua.hotfix(CS.HotfixMain, {set_Age function(self, v)print(Lua重定向的属性..v)end,get_Age function(self)return 10;end })索引器进行热补丁重定向 set_Item 通说索引器设置 get_Item 通过索引器获取 xlua.hotfix(CS.HotfixMain, {set_Age function(self, v)print(Lua重定向的属性..v)end,get_Age function(self)return 101;end,set_Item function(self, index, v )end,get_Item function(self, index)return 666end }) 事件的替换 add_事件名 代表着时间加操作 remove_事件名 减操作 xlua.hotfix(CS.HotfixMain, {add_myEvent function(self, del)print(del)end,remove_myEvent function(self, del )print(del)end }) 注意重定向后如果使用lua使用C#事件的方法去添加在事件加减的重定向lua函数中不要把传入的委托往事件里存会死循环会把传入的函数存在lua中- self:myEvent(, del) 泛型类的替换 泛型类中的T是可以变化但是lua中的替换 要一个类型一个类型的来 xlua.hotfix(CS.HotfixTest2(CS.System.String), {Test function(self, str)end })xlua.hotfix(CS.HotfixTest2(CS.System.Int32), {Test function(self, str)end })别忘了成员方法第一个参数是self

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安庆网站建设朋友圈发布到wordpress

1,打开自定义功能区 [文件]->[选项]->[自定义功能区] 2,打开设置页边距设置界面 点击之后再上方输入框进行修改,点击对钩进行确认修改,修改PageLeftMargin、PageRightMargin、PageTopMargin和PageBottomMargin这四个参数。

济南公司网站建设seo搜索引擎优化是什么意思

my.cnf(或my.ini)是MySQL的配置文件,其中包含了多种设置,用于控制MySQL服务器的运行方式。以下是my.cnf中一些常见的配置项目: 服务器设置 - [mysqld]:服务器的配置部分。 - user:指定M…

建立自己的网站用花钱吗淮安做网站的公司有哪些公司

来自 http://www.cnblogs.com/kaima/archive/2008/08/17/1269637.html 在缺乏SilverLight中文教程的今天,新人要入门不容易,所以我根据自己阅读英文原档和实践经验,总结一个系列。首先介绍的是开发环境的搭建。 个人强烈推荐安装英文版的开发…

国内红酒网站建设wordpress获取指定图片

互联网问答平台上线以来,问答口碑营销一直是企业进行网络营销推广不可缺少的一种方式,那么,什么是问答营销推广呢?如何开展问答营销推广?问答营销有哪些优势呢?小马识途营销顾问在本文分析一下。 什么是问答…

揭阳市建设发展总公司网站盘锦化工网站建设

sigmoid ReLU sigoid和ReLU对比 1.sigmoid有梯度消失问题:当sigmoid的输出非常接近0或者1时,区域的梯度几乎为0,而ReLU在正区间的梯度总为1。如果Sigmoid没有正确初始化,它可能在正区间得到几乎为0的梯度。使模型无法有效训练。 …

微网站的优势注册网站那里能注册

1、两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以…

哪里有未成年做的网站做网站需要域名还需要什么

概述 在工作中,软件、代码、程序这三个词经常被换用,大部分情况下,这种混用都不会出问题,实际上,它们是不同的概念,有相交的部分,也有不同的地方。本文就简单阐述一下他们的区别。 在计算机领…

如果一个网站的域名是一个网站项目多少钱

正题 题目大意 刚开始一棵树&#xff0c;在树中加入k条边(k<2)使得这些边都得走过的情况下&#xff0c;每个点都到达并回到原点的最少边。 解题思路 首先我们发现如果不加边的话答案是2∗(n−1)2*(n-1)2∗(n−1)。 之后我们考虑k1k1k1的情况&#xff0c;我们找树的直径&am…

青岛做网站建设的公司网站建设中的pv指的是啥

基础数据类型和引用数据类型的区别如下&#xff1a; 存储上的区别&#xff1a;基础数据类型是存放在栈中的简单数据段&#xff1b;引用数据类型是存放在堆内存中的对象&#xff0c;在栈内存中存放的是堆内存中具体内容的引用地址&#xff0c;通过这个地址可以快速查找到对象。…

gif图标网站淘宝客网站的建设

MSVCR110.dll的丢失可能导致某些应用程序无法启动。当用户试图打开依赖于该特定版本DLL文件的软件时&#xff0c;可能会遭遇“找不到指定模块”的错误提示&#xff0c;使得程序启动进程戛然而止。这种突如其来的故障不仅打断了用户的正常工作流程&#xff0c;也可能导致重要数据…

教学资源网站建设方案作文大全网站

一。以太网 1.nc模拟UDP &#xff08;1&#xff09;COMMBOX通信调试工具 &#xff08;2&#xff09; 控制台输入nc -u 127.0.0.1 8000,此时串口也可以获得数据 &#xff08;3&#xff09;串口调试程序发送字符串&#xff0c;电脑控制台也会展示同样字符串&#xff08;说明UDP…

湖南沙坪建设有限公司网站简述网站栏目管理

源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88403340 源码下载2&#xff1a; 关注我留言 开源OA协同办公系统&#xff0c;集成Flowable流程引擎 可拖拽创建个性表单。基于RuoYi-VUE版本开发。 1、使用RuoYi-Vue的基础上开发。 2、集成flowable&a…

惠州网站建设 翻译6完美动力培训价格表

在 JavaScript 中&#xff0c;函数可以通过不同的方式进行调用。以下是常见的几种函数调用方式&#xff1a; 函数调用&#xff1a;使用函数名称后跟一对小括号来调用函数&#xff0c;这是最基本的调用方式。 functionName(); 方法调用&#xff1a;函数可以作为对象的方法进行调…

上海市网站wordpress安装 503

转载于:https://www.cnblogs.com/invisible2/p/11514817.html

临沂经开区建设局网站天津服务设计

1.动态实时查找命令 使用以下命令的前提是需要在找到日志位置 tail -f server.log 实时展示日志末尾内容&#xff0c;默认最后10行,相当于增加参数 -n 10 tail -n filename; tail命令扩展 查看日志最后20行内容并实时更新日志 tail -f -n 20 server.log或者 tail -fn 20 ser…

株洲网站设计外包运营上海百网优seo优化公司

随着大模型的飞速发展&#xff0c;在短短一年间就有了大幅度的技术迭代更新&#xff0c;从LoRA、QLoRA、AdaLoRa、ZeroQuant、Flash Attention、KTO、蒸馏技术到模型增量学习、数据处理、新的开源模型的理解等&#xff0c;几乎每天都有新的发展。 作为算法工程师&#xff0c;面…

做地方网站能赚钱吗wordpress修改底部

Safari是一款由苹果公司开发的多功能浏览器&#xff0c;以其快速、稳定和安全而受到用户的青睐。在我们使用Safari时&#xff0c;它会产生大量的缓存文件。 这些缓存文件会占用存储空间&#xff0c;影响设备的运行速度。那么&#xff0c;safari怎么清理缓存呢&#xff1f;本文…

台州做网站最好的开发一个软件需要什么过程

简介 作为 Facebook 在 2015 年推出的查询语言&#xff0c;GraphQL 能够对 API 中的数据提供一套易于理解的完整描述&#xff0c;使得客户端能够更加准确的获得它需要的数据 现在的web系统大多是基于restful的&#xff0c;我们知道&#xff0c;REST强调以资源来划分系统&#x…

iis默认网站停止南京网站建设培训班

从财报表现来看&#xff0c;教育市场的元气在持续提升。 近日&#xff0c;新东方、好未来等上市公司陆续公布了2023年9-11月的业绩表现。其中&#xff0c;好未来实现营收3.7亿美元&#xff0c;同比增长60.5%&#xff1b;归母净亏损2394.6万美元&#xff0c;亏幅同比收窄53.6%。…

石油化工建设工程网站seowhy问答

1 问题描述 2 思路 为了每次元素进出的时候&#xff0c;我们都可以得到该窗口内的最大元素&#xff0c;我们需要自己定义一种队列里面包含方法可以获取最大值怎么才能获取队列里的最大值呢&#xff1f;在队列里排序也可以&#xff0c;这里我们采用单调队列&#xff1a;该队列…