SwiftUI学习笔记 发表于 2021-02-01 更新于 2021-02-03 本文字数: 3.1k 阅读时长 ≈ 3 分钟 SwiftUI学习笔记基本组件的使用Text简介显示文本的组件代码123456789101112131415import SwiftUIstruct ContentView: View { var body: some View { Text("文本") .foregroundColor(.blue) /// 文本颜色 .bold() /// 粗体 .italic() /// 斜体 .font(.system(.largeTitle)) /// 字体 .fontWeight(.medium) /// 字重 .shadow(color: .black, radius: 1, x: /*@START_MENU_TOKEN@*/0.0/*@END_MENU_TOKEN@*/, y: 2) /// 阴影 }} 阅读全文 »
算法题:找到它 发表于 2020-11-29 更新于 2021-11-04 本文字数: 3.1k 阅读时长 ≈ 3 分钟 算法题: 找到它标题: 找到它题描述找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假定给定的单词是HELLOWORLD,在矩阵中只需要找到H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。注意区分英文字母大小写, 并且只能上下左右行走,不可以回头 阅读全文 »
CGO中处理C中的回调函数 发表于 2020-09-24 本文字数: 1.9k 阅读时长 ≈ 2 分钟 CGO中处理C中的回调函数假设有以下 C语言的接口api.h1234567891011121314151617#ifndef API_H#define API_H#ifdef __cplusplusextern "C" {#endiftypedef void (*IntCallback)(void *, int);void SetIntCallback(IntCallback cb, void *data);void DoIntCallback(int value);#ifdef __cplusplus}#endif#endif 阅读全文 »
CGO 中对C语言的void *和void **的处理 发表于 2020-09-24 本文字数: 1.3k 阅读时长 ≈ 1 分钟 CGO 中对C语言的void *和void **的处理1. void *与unsafe.Pointer CGO中的 unsafe.Pointer与C语言中的 void *是对应的 Go中的结构体如果要传入 C语言的某个函数作为参数, 可以使用 unsafe.Pointer来转化 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package main/*//假设这段定义在外部C源码中对cgo不可见//typedef struct User {// int id;// int age;// int number;//} User;static void User_SetId(void *user, int id) { ((User *)user)->id = id;}static void User_SetAge(void *user, int age) { ((User *)user)->age = age;}static void User_SetNumber(void *user, int number) { ((User *)user)->number = number;}*/import "C"import ( "fmt" "unsafe")type User struct { Id int32 Age int32 Number int32}func main() { var user User pointer := unsafe.Pointer(&user) C.User_SetId(pointer, C.int(1)) C.User_setAge(pointer, C.int(25)) C.User_setNumber(pointer, C.int(10001)) fmt.Println(user) } 阅读全文 »
CGO中的一些使用注意事项 发表于 2020-09-24 本文字数: 1.4k 阅读时长 ≈ 1 分钟 CGO中的一些使用注意事项1. CGO中的内容必须紧挨着import "C", 中间不得有其他import 错误示范 123456789package main// #include <stdio.h>import "fmt"import "C"func main() { fmt.Println(C.puts(C.CString("这是一个golang字符串")))} 阅读全文 »