chatGPT是人工智能API,据说牛逼的不行,还能写代码
1. 我不信了, 来试试
终端执行 (网络需要翻墙)
curl -d "search=用swift实现反转链表" "http://gpt.kube.moguit.cn/text"
😺,wonequ,居然就真的给我输出了swift版本的反转链表, 居然还写好了代码备注,
这程序员的自我修养是相当的可以
curl -d "search=用swift实现反转链表" "http://gpt.kube.moguit.cn/text"
swift
// 定义链表节点
class ListNode {
var val: Int
var next: ListNode?
init(_ val: Int) {
self.val = val
self.next = nil
}
}
// 实现反转链表
func reverseList(_ head: ListNode?) -> ListNode? {
var prev: ListNode?
var curr = head
while curr != nil {
let next = curr?.next
curr?.next = prev
prev = curr
curr = next
}
return prev
}
2. 再来一个试试
curl -d "search=用swift实现堆排序" "http://gpt.kube.moguit.cn/text"
// 堆排序
func heapSort(_ array: [Int]) -> [Int] {
// 构建大顶堆
var tempArray = array
let n = array.count
for i in stride(from: (n / 2 - 1), through: 0, by: -1) {
_heapify(&tempArray, n, i)
}
// 堆排序
for i in stride(from: n - 1, through: 0, by: -1) {
tempArray.swapAt(0, i)
_heapify(&tempArray, i, 0)
}
return tempArray
}
// 构建大顶堆
func _heapify(_ array: inout [Int], _ n: Int, _ i: Int) {
var largest = i
let left = 2 * i + 1
let right = 2 * i + 2
if left < n && array[left] > array[largest] {
largest = left
}
if right < n && array[right] > array[largest] {
largest = right
}
if largest != i {
array.swapAt(i, largest)
_heapify(&array, n, largest)
}
}
3. 我想偷懒,让他帮我开发需求可以不,来试试让他帮我写
用swift实现股票行情图
curl -d "search=用swift实现股票行情图" "http://gpt.kube.moguit.cn/text"
class StockChartView: UIView {
// 显示股票行情的容器
let stockContainer = UIView()
// 股票信息
var stockData: [Float]?
// 画笔
let linePath = UIBezierPath()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupUI()
}
func setupUI() {
// 添加容器
addSubview(stockContainer)
stockContainer.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
// 添加股票行情图
let shapeLayer = CAShapeLayer()
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.strokeColor = UIColor.blue.cgColor
shapeLayer.lineWidth = 1.5
shapeLayer.lineCap = CAShapeLayerLineCap.round
shapeLayer.lineJoin = CAShapeLayerLineJoin.round
stockContainer.layer.addSublayer(shapeLayer)
}
func drawChart() {
guard let stockData = stockData else { return }
// 画笔起点
linePath.move(to: CGPoint(x: 0, y: stockContainer.frame.height))
for (index, item) in stockData.enumerated() {
let x = CGFloat(index) * (stockContainer.frame.width / CGFloat(stockData.count - 1))
let y = stockContainer.frame.height - CGFloat(item) * stockContainer.frame.height
linePath.addLine(to: CGPoint(x: x, y: y))
}
// 画笔终点
linePath.addLine(to: CGPoint(x: stockContainer.frame.width, y: stockContainer.frame.height))
// 更新路径
if let subLayers = stockContainer.layer.sublayers,
let shapeLayer = subLayers[0] as? CAShapeLayer {
shapeLayer.path = linePath.cgPath
}
}
}
卧槽呢,代码居然还真出来了,还居然弄好了入参stockData
会不会瞎写的呢?
我要试试运行效果
这chatGPT程序员真有修养, 服
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let stockView = StockChartView.init(frame: CGRect.init(x: 0, y: 200, width: UIScreen.main.bounds.width, height: 200));
stockView.backgroundColor = UIColor.lightGray;
/// 股票曲线参数
stockView.stockData = [0.1,0.15,0.16,0.18,0.2,0.18,0.17,0.16,0.2,0.22,0.23,0.25,0.26,0.27,0.3,0.4,0.39,0.38,0.37,0.35,0.33,0.30,0.32,0.3,0.25,0.24,0.22,0.21]
stockView.drawChart();
self.view.addSubview(stockView);
// Do any additional setup after loading the view.
}
}